matlab break是跳出所有循环吗(MATLAB基础学习之程序结构设计)

程序结构设计 程序的三种基本结构:顺序结构、选择结构、循环结构。 一、顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 (...

程序结构设计

程序的三种基本结构:顺序结构、选择结构、循环结构。

一、顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

(1)数据的输入:

>> A=input('请输入变量A的值:')

请输入变量A的值:100

A =

100

(2) 数据的输出:

>> s='Hello World';

>> disp(s)

Hello World

>> a=[1 2 3;4 5 6];

>> disp(a)

1 2 3

4 5 6

(3) 程序的暂停

pause(延迟秒数) 若要强行中止程序的运行可使用Ctrl+C命令。

例题:

>> a=input('a=');

b=input('b=');

c=a+0.618*(b-a);

s=abs(a-b);

disp(s)

disp(c)

a=1+i

b=4.5+4.5i

4.9497

3.1630 + 3.1630i

二、用if语句实现选择结构:

1.单分支if语句:当条件结构为标量时,非零表示条件成立,零表示条件不成立;当条件是矩阵时,如果矩阵为非空,且不包含零元素,则条件成立,否则不成立。例如:[1 2;0 4]表示条件时,条件不成立;[1 2;3 4]表示条件时,条件成立。

2.双分支if语句:(if else)

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

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

if rem(x,2)==1

y=sqrt(x);

else

y=x^(1/3);

end

y

3.多分支if语句(if elseif elseif else)

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

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)

else

disp(c)

end

二、用switch语句实现选择结构

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

法一:

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

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

else

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

end

例二:

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

解答:

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

switch fix(g)

case num2cell(0:34)

disp('空气**为优');

case num2cell(35:74)

disp('空气**为良');

case num2cell(75:114)

disp('空气**为轻度污染');

case num2cell(115:149)

disp('空气**为中度污染');

case num2cell(150:249)

disp('空气**为重度污染');

otherwise

disp('空气**严重污染');

end

三、用for语句实现循环结构:

格式:

for 循环变量=表达式1(初值):表达式2(步长):表达式3(终值)

循环体语句

end

说明:

for语句针对向量的每一个元素执行一次循环体。

退出循环之后,循环变量的值就是向量中最后的元素值。

当向量为空时,循环体一次也不执行。

例题:计算圆周率:

(蒙特卡洛法)

s=0;

n=input('n=');

for n=1:n

x=rand(1);

y=rand(1);

if (x*x+y*y<1)

s=s+1;

end

end

pai=s/n*4

按照MATLAB的定义,for语句的循环变量也可以是一个列向量,其格式为:

for循环变量=矩阵表达式

循环体语句

end

用while语句实现循环结构:

格式:

while条件

循环体语句

end

例一:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

x=input('请输入数据:');

s=0;

i=1;

while(x~=0)

s=s+x;

p=s/i;

i=i+1;

x=input('请输入数据:');

end

s

p

while语句多用于循环**不确定的情况,而对于循环**确定的情况,使用for语句更为方便。

针对不同情况可以选择不同的循环语句,但从功能上讲两种循环语句可以相互替代。

补充:

break语句和continue语句:

break语句用来跳出循环体,结束整个循环。

continue语句用来结束本次循环,接着进行下一次是否执行循环的判断。

例题:求[100,200]之间第一个能被21整除的整数。

for n=100:200

if rem(n,21)~=0

continue

end

n

break

end

如果一个循环结构的循环体又包含一个循环结构,就称为循环的嵌套,或称为多重循环结构。

例题:用筛选法求某自然数范围内的全部素数。

**:筛选法求素数的基本思想是要找出2~m之间的全部素数,首先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数(不包括5),……,直到再划去不超过 的倍数,剩下的就都是素数。

m=input('m=');

p=1:m;

p(1)=0;

for i=2:sqrt(m)

for j=2*i:i:m

p(j)=0;

end

end

n=find(p~=0);

p(n)

  • 发表于 2022-11-18 22:36:24
  • 阅读 ( 343 )
  • 分类:科技

0 条评论

请先 登录 后评论
zhu524066
zhu524066

345 篇文章

你可能感兴趣的文章

相关问题