12、matlab中for循环,if else判断语句,break和continue用法以及switch case语句使用

时间:2024-07-07 07:44:23

1、前言

在MATLAB中,for循环用于迭代一个固定次数的循环。可以使用if else语句在循环中进行条件判断,根据条件的不同执行相应的代码块。breakcontinue可以用于控制循环的执行流程,break用于提前结束循环,而continue用于跳过当前循环迭代,继续下一次迭代。switch case语句可以替代多个if else语句,在根据表达式的值选择不同代码块执行时,提高代码的清晰度和可读性。

使用这些控制流语句可以使代码更加灵活,结构更清晰。在编写MATLAB代码时,根据不同的需求选择合适的控制流语句来优化代码逻辑,提高代码的效率和可维护性。

2、if else 语句用法

1)if else简介

在MATLAB中,if-else语句是一种常用的条件控制结构,用于根据给定条件的真假来执行不同的代码块。if-else语句的基本结构如下:

if condition % 当条件为真时执行的代码块
 else % 当条件为假时执行的代码块 
end

if-else语句中,condition是一个逻辑表达式,当这个表达式为真时执行if语句块内的代码,否则执行else语句块内的代码。可以根据需要嵌套多个if-else语句来实现不同条件下的逻辑控制。

除了基本的if-else结构,MATLAB还提供了其他条件控制的语法,例如else ifswitch-case等,用于更复杂的条件处理。

if-else语句在MATLAB中广泛用于根据不同情况执行不同的操作,例如根据条件选择不同的数据处理方式、流程控制、错误处理等。合理应用if-else语句能够使代码更具灵活性和逻辑性,实现特定的功能需求。

2)例子:

判断a和b是否相等

3)代码:

a=1;
b=2;
if(a==b)
    c="a等于b"
else
    c="a不等于b" 
end

c = 

    "a不等于b"

3、for循环

1)for循环简介

在MATLAB中,for循环是一种常用的迭代结构,用于重复执行一段代码多次。for循环的基本结构如下:

for index = startValue:endValue 
% 循环体的代码 
end

在这个结构中,index 是循环变量,startValue 是循环变量的起始值,endValue 是循环变量的结束值。循环体的代码会在每次循环时执行,index 会在每次循环迭代时被更新。

除了基本的从起始值到结束值的步长为1的递增循环,MATLAB中的for循环还支持其他形式,比如指定步长、使用数组等。

for循环在MATLAB中常用于遍历数组、矩阵、执行一系列相似的操作、迭代优化算法等。循环结构可以帮助简化重复的代码逻辑,提高代码的可读性和复用性。

需要注意的是,在MATLAB中尽量避免使用很大的for循环,因为循环的效率相对较低。如果可能的话,尽量使用向量化操作来代替循环,这样通常会更高效。

2)例子:

 a矩阵中是否有b

3)代码:

a=[1 1 1;
    1 2 1];
b=2;
for i=1:1:2
    for j=1:1:3
        if(a(i,j)==b)
            c="a矩阵中有2"
        end
    end
end

c = 

    "a矩阵中有2"

4、for循环使用 break跳出循环

1)for循环使用 break跳出循环简介

在MATLAB中,break语句用于跳出当前所在的循环,即使循环条件仍然为真。通过使用break语句,可以提前结束一个循环,无需等待循环条件为假才退出。break语句通常配合条件判断来使用,以便在满足某个条件时提前跳出循环。下面是一个使用break语句的示例:

for i = 1:10 
if i == 5
 break; % 当 i 等于 5 时跳出循环 
end 
disp(i); 
end

在这个示例中,循环会迭代从1到10的值,但当i等于5时,break语句会执行,导致提前跳出循环,避免继续执行循环中的代码。

break语句通常用于在特定条件下终止循环,或者当达到某个特定目标时提前结束循环。合理使用break语句可以简化代码逻辑,提高代码的效率和可读性。

2)例子:

矩阵a中元素是否有突变

3)代码:

a=[1 1 1 2 1];%矩阵a中元素是否有突变
for i=1:1:4
    if(a(1,i)~=a(1,i+1))
        b="a中有突变发生"
        break;
    else
        b="a中无突变发生";
    end
end

b = 

    "a中有突变发生"

5、for循环 使用continue结束本次循环继续下次循环

1)for循环 使用continue结束本次循环继续下次循环简介

在MATLAB中,continue语句用于结束当前循环迭代,并开始下一次的循环迭代。当遇到continue语句时,循环会立即跳过当前迭代的剩余代码,直接进行下一次迭代。通过使用continue语句,可以在特定条件下跳过当前迭代,继续执行下一次循环。

下面是一个使用continue语句的示例:


for i = 1:5 
if i == 3 continue; % 当 i 等于 3 时跳过本次循环 
end 
disp(i); 
end

在这个示例中,循环会迭代从1到5的值,但当i等于3时,continue语句会执行,导致跳过本次循环中disp(i)的执行,直接进入下一次迭代。

continue语句通常用于在特定条件下跳过某些迭代,继续执行后续的迭代操作。通过合理使用continue语句,可以提高代码的效率,避免不必要的计算或处理。

2)例子:

c与a元素相等的个数

3)代码:

c=1;%c与a元素相等的个数 b表达相等个数
b=0;
a=[1 1 1 2 1];
for i=1:1:5
    if(a(1,i)==c)
        b=b+1;
    else
        continue;
    end
end
b

b =

     4

 6、 switch case语句

1)switch case语句简介

在MATLAB中,switch case语句用于根据一个表达式的值选择多个代码块中的一个来执行。switch case语句可以替代多个if else语句,使代码更加清晰、简洁。

switch case语句一般的语法结构如下:

switch expression 
case caseValue1 % 当 expression 等于 caseValue1 时执行的代码 
case caseValue2 % 当 expression 等于 caseValue2 时执行的代码 
case caseValue3 % 当 expression 等于 caseValue3 时执行的代码 
otherwise % 如果 
expression 不等于任何一个 
case 值时执行的代码 
end

switch后面的expression是一个要被比较的表达式或值。接着是一系列case语句,每个case后面跟着一个可能的值(caseValue1caseValue2caseValue3等)。当expression的值等于某个case值时,与该case对应的代码块将被执行。如果expression的值不等于任何一个case值,则会执行otherwise之后的代码块(可选)。

下面是一个简单的示例,演示了如何使用switch case语句:

day = 3; 
switch day 
case 1 disp('Monday'); 
case 2 disp('Tuesday'); 
case 3 disp('Wednesday'); 
otherwise disp('Other day');
 end

在这个示例中,如果day的值是1,输出结果为'Monday';如果day的值是2,输出结果为'Tuesday';如果day的值是3,输出结果为'Wednesday';否则输出结果为'Other day'。

通过合理使用switch case语句,可以简化代码并使代码逻辑更加清晰易懂。

2)例子:

实现两个数字的加减乘除运算

3)代码:

for i=1:1:3
a = input('请输入一个数字: ');%输入数字
c= input('请输入一个运算符号: ','s');%输入字符
b = input('请输入一个数字: ');%输入数字
switch c
    case '+'%
        fprintf('%d %c %d=',a,c,b)%格式化输出
        disp(a+b)%输出数据
    case '-'
        fprintf('%d %c %d=',a,c,b)
        disp(a-b)
    case '*'
        fprintf('%d %c %d=',a,c,b)
        disp(a*b)
    case '/'
        fprintf('%d %c %d=',a,c,b)
                disp(a/b)  
    otherwise
        disp('error!')
end
end
请输入一个数字: 1
请输入一个运算符号: -
请输入一个数字: 2
1 - 2=    -1

请输入一个数字: 1
请输入一个运算符号: +
请输入一个数字: 2
1 + 2=     3

请输入一个数字: 1
请输入一个运算符号: %
请输入一个数字: 3
error!

7、总结

在MATLAB中,控制流语句是编程中常用的工具,能够控制程序的执行流程和逻辑。下面是关于for循环、if else判断语句、breakcontinue用法以及switch case语句的总结:

  1. for循环:for循环用于迭代一定次数的循环。常见的语法形式为:
for i = 1:n % 循环体代码 end

其中i为迭代变量,从1到n进行循环。

  1. if else判断语句:if else语句用于根据条件来选择不同的代码执行路径。基本语法如下:
if condition % 条件为真时执行的代码 else % 条件为假时执行的代码 end
  1. breakcontinue用法:break用于提前结束循环,跳出循环体;continue用于跳过当前迭代,继续下一次迭代。示例:
for i = 1:10 if i == 3 continue; % 跳过当前迭代 
end if i == 6 
break; % 结束循环
end disp(i); 
end
  1. switch case语句:switch case语句用于根据不同条件值选择不同的代码执行路径,替代多个if else语句。语法形式如下:
switch expression
case caseValue1 % caseValue1 对应代码块 
case caseValue2 % caseValue2 对应代码块 
otherwise % expression 不匹配任何 case 值时执行的代码块 
end

通过合理结合和使用这些控制流语句,能够编写出更加清晰、高效的MATLAB代码,提高代码质量和可读性。