选择结构(if、switch)

3.2  用if语句实现选择结构

什么是选择结构 

单分支if语句 

双分支if语句 

多分支if语句

1.什么是选择结构?

选择结构又称为分支结构,是根据给定的条件是否成立来决定程序的执行流程。

用if语句实现选择结构 

用switch语句实现选择结构。

2.单分支if语句

 

当条件结果为标量时,非零表示条件成立,零表示条件不成立。  建议条件尽量使用标量。

当条件结果为矩阵时,如果矩阵为非空,且不包含零元素,则条件成立,否则不成立。

例如,[1,2;0,4]表示条件时,条件不成立;[1,2;3,4]表示条件时,条件成立。

3.双分支if语句

例1  输入一个整数,若为奇数则输出其平方根,否则输出其立方根。

x=input('请输入x的值:');

if rem(x,2)==1     //调用rem函数,求余数。有可写成rem(x,2)

  y=sqrt(x);

else

  y=x^(1/3);     //也可以用pow函数来实现

end

y

4.多分支if语句

只有前面的条件不成立,才会执行当前的。程序在执行完一个分支后,其余分支将不会再执行,整个if语句结束。

 

例2  输入一个字符,若为大写字母,则输出其对应的小写字母;若为 小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数 的平方,若为其他字符则原样输出。

c=input(’请输入一个字符:’,’s’);  //当成字符串看待

if c>='A'&& c<='Z'

        disp(lower(c));   //大写转小写

elseif c>='a'&& c<='z'

        disp(upper(c));   //小写转大写

elseif c>='0'&& c<='9'

        disp(str2double(c)~2);  //输出对应数的平方 str2double函数将字符串转化为字符

else

        disp(c);

end

3.3用switch语句实现选择结构

语句格式 

执行过程 

实例

语句格式:

Tip:当任意一个分支的语句执行完后,整个 switch语句执行完毕。整个过程只会执行一个 语句组。

switch表达式应该是一个其值可以列举的表达式。(如整型表达式,字符串表达式,实型表达式不可以列举)

case结果表为switch表达式的取值,当取值有多个时,用单元数据表示。(多个结果用大括号括起来)只要执行单元中的某个元素时,就执行相应的语句组。

例子:

x=input('x=?');

switch fix(x)

            case2

                    disp(111);

            case 2

                    disp(222);

            case {3,4,5}

                    disp(333);

            otherwise

                    disp(444);

end

x=?2   //执行完2以后程序结束不会出现222

 111

x=?4

 333

x=?8

 444

例1  输入一个英文单词,判断它是否以元音字母开头。

c=input('请输入一个单词:','s');

switch c(1)     

  case {'A','E','I','O','U','a','e','i','o','u'}         

    disp([c,'以元音字母开头']);    

otherwise         

    disp([c,'以辅音字母开头']);

end

利用字符串查找函数实现

c=input('请输入一个单词:','s');

if findstr(c(1),'AEIOUaeiou')>0     //调用findstr函数,返回单词首字母在后面长字符串的位置大于0时,元音字母开头。

  disp([c,'以元音字母开头']);

else    

  disp([c,'以辅音字母开头']);

end

例2  PM2.5是指大气中直径小于或等于2.5微米的可入肺颗粒物,是衡量 空气质量的重要指标。假定空气质量等级以PM2.5数值划分为6级。 PM2.5数值在[0,35)空气质量为优,[35,75)为良,[75,115)为轻 度污染,[115,150)为中度污染,[150,250)为重度污染,大于等于 250为严重污染。编写程序,输入PM2.5数值,输出空气质量等级。

实现方法:用六个单分支结构实现  用多分支if语句实现  用switch语句执行

num2cell函数:将数值矩阵转化为单元矩阵

因为冒号表达式产生的是一个向量,先将向量转化为单元数据。才能进行枚举。

g=input('请输入PM2.5值:’);

switch fix(g)    //取整

            case num2cell(0:34)

                    disp(’空气质量优);

            case num2cell(35:74)   

                    disp(’空气质量良好’);

            case num2cell(75:114)   // num2cell函数:将数值矩阵转化为单元矩阵

                    disp(’空气质量轻度污染’);

            case num2cell(115:149)

                    disp(’空气质量中度污染’);

            case num2cell(150:249)

                    disp(’空气质量重度污染’);

            otherwise

                    disp(’空气质量严重污染’);

end

原文地址:https://www.cnblogs.com/yuling520/p/12792263.html