高程整理5-控制语句
5.控制语句
- goto语句,直接无条件跳转到其他位置,位置用语句标号来标识,命名和变量名规则一样。本课程禁止使用。
if
- if后面跟的大括号里面这个是语句序列,语句序列只有1个语句可以把大括号省略。
- if-else一整个当作一个语句来看
- 多支语句,中间写的是
else if()…… - 用多支语句来判断区间,第一个支是
a>=90,第二个支写成a>=80 && a<90是最好的,即使a是整型,a<=89也没那么好,因为如果你要改成浮点数,那a<90的写法是不用改的。 - 语句序列只有一个语句可以省略大括号的原则,可以应用于else后面直接跟if的情况。
- if语句的大括号可以用栈来配对。
switch
switch只能用来匹配整形。case后是整形。这是因为浮点数有误差,没法匹配。switch语句的执行逻辑:算出括号内表达式的值,然后去下面的case里一一对应。一旦他找到一个case匹配上了,那么在此处进入程序,一句句顺序执行,所以后面的case对他而言就是不存在。如果想要达成一个数一种操作,就要在每一个case的最后加一句break;。- 按照上面这个逻辑,case和default的排列顺序不影响程序逻辑,只要找到,程序就会在那里开始,找不到,就会到default位置开始。
- case后面的表达式必须是常量。如果里面有变量参与计算,会报错。
- case后面的东西不能有重复。
for/while
for的括号里是3个表达式,用分号隔开。for的循环逻辑:表达式1只执行一次,然后进入表达式2的判断,执行语句序列,再执行表达式3,再回到表达式2的判断。for和while互相转换。- while可以全部转成for
- for不能全部转成while,因为有一个情况下逻辑不同:如果语句中含有一句条件下
continue;的语句,while会直接去进行运行条件判断,for还会继续执行一句表达式3. - 说白了,就是for里面con不continue,都会执行表达式3,while遇到continue是做不到这一点的。
for循环适用于已知循环次数的循环,比while可读性高。for循环省略表达式2,死循环;省略表达式1、3,完全等同于while- 如果压行导致
for循环没有任何语句序列需要写了,那么for的结尾加个分号,建议换行写成空语句形式,易于理解。 break;只会跳出最近的一层循环/switch。所以说如果想要灵活的跳,就要使用goto语句。continue;放在switch里会报错。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 PhyCmdBlock的博客!