00:00
接下来呢,我们再来介绍另外一个比较常用的循环流程控制方式,那就是所谓的while循环啊,其实well也非常的经典啊,绝大多数的编程语言里边也都提供了while循环的语法啊,那我们看这个while循环跟for循环有什么区别呢?啊,简单来讲就是for循环,它是直接在这个for里边把对应的循环变量已及控制条件循环变量的变化啊都已经放在这里了,统一列出来了。而Y循环呢?While循环这里是只有一个条件判断式。也就是说,这里只做条件判断,判断是否继续循环或者退出循环,而至于说,呃,这个循环变量是什么,到底怎么变化,通通都不管。所以一般情况Y有一个特点,就是我们需要在外部先把当前的循环变量先定义出来啊,给一个初值,然后呢,在里边的程序循环体里边必须要实现循环变量的改变啊,啊,那当然了,里边它的这个循环体还是度开头当结束,整体来讲跟for其实是差不多的,所以接下来我们还是用一个非常简单的事例啊,我们还是就看之前的那个连加吧,从一加到100那个例子,看一看用well怎么样去实现。
01:15
这一部分代码呢,我们就不再去重新创建脚本了,直接去问一下之前的三铺这个脚本,我们直接在下边追加一个,哎,我们空上一行啊,方便大家看清楚,那接下来呢,我们用while。做一个实现。上面是for的实现,这里我们也空一行来一行注释就是用for。进行实现。好,那接下来,呃,我们这里需要去做的事情,也就是直接while后边跟着的那就是一个条件判断式了,中括号啊啊,当然你如果想要,有些同学可能说,哎,那我直接用这个双小括号可以吗?哎,也可以啊,但是一般只有一个条件判断式的话,那我们就跟if一样嘛,哎,你直接还是直接用中括号更方便一些啊,呃,更简单一些,所以接下来我们要判断的就是当前的,哎,很明显我们要判断的是。
02:10
某个循环变量啊,比如说我管这个循环变量叫做A啊Dollar a,我们要判断它是否小于等于我们的上限,上限当然就是DOLLAR1了,我们当前输入的这个参数嘛,就加到多少嘛,那这里这个A它当前没有出值啊,我们之前完全没有赋过,那怎么办呢?必须在外部先把A给一个定义啊,那我们初值的话,当然从一开始加码A等于一,然后接下来判断它是否小于等于输入的上限高一,接下来呢,就是循环体了,接下来就可以循环了,Do当前我们做一个,诶当前我们把这个定义成SUM2吧,上面那个叫sum啊,我们就接下来这个叫SUM2,那同样这个逻辑是一样的,也是它应该等于之前的SUM2,加上当前的Dollar a啊,那所以我们里边写就是Dollar sum2加上。
03:04
Dollar a。把这个做完之后还没完,我们还需要把当前的A。做一个变化,哎,因为之前放循环,我们是在这儿直接爱加加了啊,那在这儿的话,你是不是要把这个A也要每一次都加一呢?要不然的话这个A不变,这个循环退出了子循环了,所以接下来我们同样要有一个A加加的过程啊,可能我们就讲到,那你这儿直接写A加加行吗?哎,那不行啊,我们这里边没有办法识别这种语法,哎,那所以就必须要有A等于,哎,那还得写,相当于我们要完整的写出A等于A加一。这样一个过程,那A等于A加一,前面的A做负值的时候直接这么写没问题,后边首先这是一个加法运算,是不是首先要来一个Dollar中括号啊?然后后边只要引用到的A,我们想要使用它的值的话,又得加一个Dollar,所以我们现在的表达是Dollar Dollar a加一,那就是有点诡异啊,呃,这个link she里边的这个语法确实是比较比较奇葩,比较奇怪啊,我们一开始可能上手就会觉得比较难受啊,那里边我们写上Dollar a加E啊,那这样的话就写完了。
04:14
然后接下来做完了之后来一个到最后echo当前的DOLLAR32。好,写完了之后,我们可以来做一个测试。直接加到140没有问题,两个都输出了5050啊,那所以这就是使用while循环去实现这样一个叠连加叠加的过程啊,那当然了,其实如果有同学了解的更多的话,可能会发现啊,这种语法这也太反人类了是吧?啊,就是如果每一次我们都要这么写的话,太痛苦了。呃,其实这个也是有原因的,因为我们知道linknu shell,它本身就不是为了我们呃做这种复杂的编程而设计的一门高级编程语言。他其实本身只是想要啊,我们在shell里边,命令行里边去输入一些命令,去控制我们底层的Linux内核,做操作系统上的一些底层操作,所以它的这个语法就特别的底层啊,那在这个过程当中,如果说我们想要扩展这种高级语言特性的话,你就会觉得很别扭,所以这个也是有原因的。
05:15
当然了,我们会发现啊,这种经典的linknuce语法太过于反人类哈,一开始上手的时候太太难受了啊啊,所以linknux呢,也是在不停的改进,所以现在啊,很多这个呃,Shell的版本里边,它其实支持另外一种写法,可能有同学也见过这种写法啊啊,我们这里可以给大家演示一下,直接把这两行注掉,我们用一个更加。人性化的写法来实现一下这两行代码,那只要加入一个什么呢?啊,其实非常简单,只要用一个let这样一个命令啊,这也是现在的shell里面的一个内嵌命令啊,所以我们直接let,这样的话,接下来就可以写我们在其他编程语言里边熟悉的那种语法了,怎么写呢?那就直接SUM2加等于A,我们这里的循环变量是A。
06:02
直接加上这个A就可以了啊,然后let下边A加加,所以这个的话我们看起来就非常的熟悉啊啊,当然这里需要注意的就是这个加等于前后还是不能空格啊,要空格的话就又又会报错又会有问题,所以如果我们把这个保存一下的话,接下来直接运行还是同样没有问题啊啊这个只是就是稍微的了解一下啊这种写法,因为很多脚本里边大家可能会发现它还是这种老式的经典的这种写法,我们一定要能看懂这种写法才行啊,当然了,呃,如果说我们已经熟悉了这个let的写法之后啊,使用这种方式显然是更加的轻松,更加容易理解的,所以这两种用法我们都应该有所了解。这就是关于while循环的具体的使用。
我来说两句