学习分支与循环相关知识后对二者有所感悟,特作此文。
首先,对于分支与循环的我是这样理解的:
分支是在处理遇到的相对复杂的实际问题时,即有多种结果或可能的实际问题时我们需要将情况分项陈述并进行处理,分支就是分项处理的体现之一。
循环是在我们遇到具有较大的规律性与重复性的问时,具有方便快捷的优点的工具,它能够更快速的处理繁琐的问题。
接下来是常用的操作符,常用的有:关系操作符,条件操作符和逻辑操作符三类
1、 关系操作符用来表明、判断数据的关系
> ⼤于运算符
• < ⼩于运算符
• >= ⼤于等于运算符
• ⼩于等于运算符
• == 相等运算符
• != 不相等运算符
2、条件操作符 exp1 ? exp2 : exp3 exp1指进行判断的语句,如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果 exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
3、逻辑操作符 || (或) &&(并且) !(取反)
要注意的是1、运算操作符不宜连用如a==b==c a==b在计算机扫描后会判断为真(1)或假(0)这时a=b就被认为时1或0在与c进行比较时可能会产生错误,同理< > 也不宜连用如果情况需要,那么需要配合逻辑操作符&&来使用,因为&&表示并且,a==b&&b==c即a==b且b==c这是abc时相等的 2、逻辑操作符有“短路”的情况发生,因为&&是并且的意思如果&&前的数据已经确定是假(0)那么这组数据就一定是假,这就不需要考虑&&后面数据的情况,这是计算机会跳过这一数据,也就是说a==0&&b=b+1,当确定a是假时b=b+1这组数据会被直接跳过,并不进行计算,即b并不会加一。同理对于||(或)来说,只要有一个真(非零)出现就会直接跳过后面的数据并不进行操作或运算。3、!(取反)的意思是将假变成真,真变成假。
接下来就是对分支的详细讨论了:
分支语句主要包括 if 与swich语句,二者在运用原理上有较高的相似性。
首先if语句的语法形式为 if(表达式) 语句(操作)表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏ if 可包含多个语句,当包含多个语句时需要用{}括起来,单个语句也可以用{}来提升观感。且if 下可以包含更多的if ,也就是if 的嵌套
当然,if 只能描述一种情况,如果要描述更多的情况就可以应用else,来描述剩余的部分,因为if 语是可以嵌套的,所以当我们需要更细致的分类时就可以在if 或else 下{}中再次输入if 进行分类,当然为了便于表示else下的if可以直接用else if来表示,要注意的时一个else所对应的if是离他最近的if并不是与他对齐的,
接下来就是swich语句了,switch 语句是⼀种特殊形式的if...else 结构,⽤于判断条件有多个结果的情况。它把多重 的 else if 改成更易⽤、可读性更好的形式。它的语法形式为
switch (expression)
{ case value1: statement
case value2: statement
default: statement }
上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值, 就执⾏ default 分⽀。 要注意到的是 swich与case后的语句必须是整式类型如int short long 或数字等等,不能是float等浮点数。
二者的相似点是case 类似于else if ,同时二者都能分类描述。
而swich后多为运算操作,case后为可能情况,if后则能够直接开始分类,swich语句需要用到break来终止,因为计算机在运算时会从case中选取符合条件的一项并开始执行后面的代码,但它并不会就此停下而是继续执行接下来包括剩余case中的代码为了防止这种情况出现,就引入了break来结束代码的运行。
接下来是对循环的一些理解: C语言中常用的循环语句有:while循环,for循环和do while循环和goto形成的循环
首先while循环,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值, 就执⾏ default 分⽀。
while(表达式)
{语句}
if语句和while语句在语法形式上是相似的,但if只执行一次,二while可以执行多次
接着是for语句,
for(exp1;exp2;exp3)exp1是对循环变量的初始化(代替while中的int),exp2是表达式即判断语句(代替while中的表达式),exp3是语句(代替了while中的语句),即for将while的多个语句整合成了单个的语句,它简化了代码的描述,使用起来与while有同样的作用,但使用起来更加方便
然后是do while语句,顾名思义do是指先进一步操作再接着运行,它相比while将语句部分移动至表达式前,先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表 达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。
do while多用于特殊情况下的问题
最后是goto,goto是C语言独有的一个句式,它可以让程序跳转至指定的位置,即goto xxxx,就会跳转至xxxx:的指定位置,若xxxx:位于 goto前,那么将形成循环
接着是break和continue的问题
break就是停止/跳出循环,进行循环之下的程序,而continue则是跳过循环中接下来的语句部分直接进入下一个循环,要注意的是while中语句部分将被跳过,而for中{}内的操作将被跳过而for()中exp3的内容不会被跳过,这是二者的区别。
最后分支和循环的问题单放出来并不复杂但是嵌套起来将会难于理解,对于我们面临的实际问题来说嵌套是必然的,我们需要尽力的学会应用他,在应用时注意细节做好注释和括号,使代码更清楚明了,对我们的理解也会有所帮助,这些并无捷径可走,望大家能够共同努力,共同监督,积极进取,天天向上。
谢谢!!