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