matlab初学第四课•Layton大讲堂之 matlab简单的判断流程控制

什么是流程控制

  相信我们会对以下图片很熟,没错!就是我们衡水金卷时常能看到的玩意——程序框图,程序框图也叫流程框图,其目的是为了能让程序按照你设置的一些条件运行。

  说得很空,我们来举个例子:有一天小鬼头想去领养猫猫,可她却没有时间,她决定让她的男朋友帮忙,她不知道猫猫店的猫猫有什么,她决定给她男朋友发出命令,颜色来说,如果有橘色就要橘色。体重来说,要轻一点的不要肥肥的,最好在10斤以内。屁股来说要大一点。那么这段命令就是一段流程控制了,黄帅锅可以根据收到的命令进行判断,执行领养猫这一操作。

那怎么对程序进行流程控制呢

   那就要用程序的语言了,matlab的话就是这些:

if...else...end

   先来看if和else,if就相当于我们中文的如果,格式是if(xxx),程序会对xxx进行判断,然后会对判断结果进行操作。

具体流程:

我们来看具体例子,我们定义一个变量x=5,一个y=5,然后我们设计一个程序,判断x是不是小于10,是就让x+5,不是就让y+5.

很清楚得看到在if条件语句程序判断x的值小于10,执行了下面那条y=y+5,而没有执行else下面的x=x+5,输出的结果x是5,y是10。(surprise)

if...elseif...elseif...else...end

  这个语句其实本质上就是if语句,if相当于中文的如果,else if相当于不行的话这样行不行,原谅我说得有点飘。打个比方,小鬼头又想去买猫猫了,这次她想这样判断猫猫,先看颜色,颜色是橘色就直接买,不是橘色就看体重,少于九斤就直接买,没有小于九斤的屁股肥才买,如果都不满足,就不买

写成伪程序就是:

if(是橘猫吗?)
买。 
else if(体重小于九斤吗)
买它 
else if(屁股肥吗) 
买! 
else 
不买! 
end 

那再matlab要怎么写呢,我们设y=0,想设计一个程序判断x的值,如过大于10就让y+1,小于10但大于5就让y+2,小于5但大于3就让y+3

可以看到结果,x不大于10,所以不执行y=y+2,x不大于5,也不执行y=y+2,直到判断x大于3是真,所以执行y=y+3,然后跳到end了。

switch语句

格式:case后面一定要跟常量

switch 表达式

case 数值1

程序模块1

case 数值2

程序模块2

case 数值3

程序模块3

......

otherwise

程序模块 n

end

  switch作为英文单词有很多意思,主要是切换和选择两个意思,再程序控制中switch更接近选择。怎么用呢?我们又来打比方了,小鬼头在5中的时候,经常会因为不知道吃什么而烦恼,于是她想根据中午学校饭堂卖什么吃的来选择甜点,中午吃鸡扒饭就买龟苓膏,中午次排骨就买双皮奶,中午次烤肉就买肥宅,如果中午不次鸡扒饭也不次排骨也不次烤肉,小鬼头就去买哈根达斯。

伪代码:

设x为中午午饭
switch x
case 鸡扒饭
    买龟苓膏
case排骨
    买双皮奶
case 烤肉
    买肥宅
otherwise
    买哈根达斯
end 

那我们来看看一个实际问题,假设小明考了90分,倘若学校规定90分为优秀,80分为良好,除此以外什么也不是,我们用switch语句来给小明做判定

 

  可以看到switch判断x==90,小明最终是优秀,我们回到刚刚说的case后面跟的是常量,你只能判断x是不是一个数,而不能判断它和数的关系,例如x大于90吗?这种判定是不能用switch的,所以一般来说switch的应用比if...else来的要少。

循环控制   

   什么是循环控制呢,循环控制简单来说就是控制你写的一段代码在有限次次数内执行。

 

 我们看上图,从上方黑点开始,先判断条件condition,若为真就执行循环代码,若为假就结束,为真执行循环代码后继续判断,直到有一次为假就结束循环。

 循环在生活中的逻辑肥肠容易理解,例如小鬼头说:”我今天不抽到6星不睡觉“。那么这里的逻辑就是,判断自己抽没抽到6星,抽不到就继续抽,抽到了就睡觉。

 循环在程序中的好处就是能用简单的代码使循环体被执行很多次,避免了程序员写很多代码的困难。

for循环

  格式:

  for 循环变量=表达式1:表达式2:表达式3

    循环体

  end

  其中表达式1为循环变量初值,表达式2为每次递增的步长省略时为1,表达式3为循环变量终值。

  其逻辑意义就是判断现在的循环变量到达3没有,没到达就执行循环体循环,变量再按照表达式2递增,到了就结束循环。

  例如我们想输出1到5这5个数字,当然我们可以在matlab打这5个数字实现,那100呢?1000呢?这就需要用循环了。

  我们的目的是计算1到5的和,所以我们需要1到5这5个数字,所以我们可以控制循环变量初始值为1,终止值为5。

  

   再比如我们想计算1到5的和,我们用一个变量sum存我们的答案

    

  同理我们可以计算1到100的和,1到100的积

  我们再来看一道例题,计算1/n2的和其中n从1到100。

  我们还是用sum代表答案。

  

  再来我们看看其他的基本操作,例如和if else搭配。

  我们如果想计算1到10的偶数有多少个。

  

   其中mod(a,b)代表a/b的余数,例如mod(5,3)=2。

   mod(i,2)==0代表此时的i/2的余数与0相等。

   还有要注意的地方就是if也要搭配end使用,所以一共会有两个end

while循环

   while循环的逻辑和for是一样的,只是格式不同,for用循环变量判断循环的起止条件。

   while循环用程序写的表达式判断。

   格式:while(表达式)

       循环体

     end

 首先判断表达式是否为真,为真就执行循环体,再判断,直到为假结束循环

 我们可以用while控制一些我们不知道会循环多少次的程序流程。

 例如我想计算1+2+3+...一直加下去直到和>=100就不加了

 

  

    

    

原文地址:https://www.cnblogs.com/qq2210446939/p/12505286.html