前言:
当前我们对“c语言分支”都比较关注,各位老铁们都想要剖析一些“c语言分支”的相关文章。那么小编也在网摘上收集了一些关于“c语言分支””的相关资讯,希望大家能喜欢,姐妹们一起来学习一下吧!一、if语句
形式1:
if (逻辑表达式)
执行语句
如果逻辑表达式为真,则执行执行语句
形式2:
if (逻辑表达式)
执行语句1
else
执行语句2
如果逻辑表示是为真则执行执行语句1,否则执行执行语句2
形式3:
if (逻辑表达式1)
执行语句1
else if (逻辑表达式2)
执行语句2
else
执行语句3
如果逻辑表达式1为真,则自行执行语句1,如果逻辑表达式1为假而逻辑表达式2为真,则执行执行语句2,否则,如果两个表达式都为假,执行执行语句3
关于if语句形式2分析:
规则是如果没有花括号致命,else与和它最近的一个if相匹配。如果希望在if和else之间有多条语句,必须使用花括号创建一个代码块。下面的结构违反了C语法,因为编译器期望if和else之间只有一条语句。
编译器会把printf()语句看作if语句的部分,将x++语句看作一条单独的语句,而不把它作为if语句的一部分。然后会认为else没有所属的if,这是个错误,应该使用花括号。或者参看do while (0)语句。
判断条件通常是一个关系表达式,也就是用一个关系运算符构成的表达式,例如:< 或者 ==。利用C的逻辑运算符,可以作何多个关系表达式以创建更复杂的判断。
需要注意的几点:
1、赋值运算符和逻辑运算符
例如:
if (5 = n) 语法错误
if (5 == n) 检查n的值是否为5
2、 if(n != 0)可用if (n)代替
3、if (n >= 9 && n <= 100) 不要写成 if (90 <= n <= 100)
问题在于该代码是语义错误,我不是语法错误,因为对于<=运算符的求值顺序是由左到右的,所以会把该测试表达式解释为如下形式:
(90 <= n) <= 100
子表达式90 <= n的值为1(真)或0(假)。任何一个值都小于100,因此不管n的值是什么,整个表达式总是为真,所以需要使用&&来检查范围。
例如: if (5 > 2 > 3) 布尔值为0(假).
注意: 零值表示“假”,非零值表示“真”,负数也是非零值。
二、循环辅助手段:continue和break
1、continue语句
continue命令可以与三种循环形式中的任何一种一起作用,但是不能喝switch语句一起使用。他导致程序控制跳过循环中的剩余语句。对于while和for循环,开始下一个循环周期。对于do while循环,对退出条件进行判断,如果必要,开始下一个循环周期。
用处:可以在主语语句中消除一级缩排。当语句很长或者已经有很深的嵌套时,作为占位符,使代码根据可读性:
while (getchar () != '\n')
continue;
2、break语句 可以加小编的群466572167,交流学习
循环中的break语句导致程序终止包含它的循环,并进行程序的下一阶段。break命令可以与三种循环形式中的任何一种以及switch语句一起使用。它导致程序控制跳过包含它的循环或switch语句的剩余部分,继续执行紧跟在循环或switch后的下一条命令。
break语句实质上是switch语句的附属物,顺便提一下,break语句用于循环和switch中,而continue仅用于循环。
例如:在if语句中使用continue会出现: 错误:continue语句出现在循环以外。
三、多重选择:switch和break
以上面的例子来说明switch语句:可以加小编的群466572167,交流学习
如果i为整形值1或者2,则打印22222。如果它的值为3,则打印33333和44444(因为杂case 3后没有break语句,所以流程继续到随后的语句),如果它的值为4,则打印44444,。对于其他值,仅打印hello world
总体注解:
程序控制按照逻辑表达式的值跳转到相应的case标签处。然后程序流程继续通过所有剩余的语句,直达再次由break语句重定向。逻辑表达式和case标签必须都是整型值(包括类型char),并且标签必须是常量或者完全有常量组成的表达式。如果没有表达式值相匹配的case标签,那么控制定位到标签为default的语句,如果它存在的话。否则,控制传递给紧跟着switch语句的下一条语句。
每个 switch 语句中只能出现一条 default 子句。但是,它可以出现在语句列表的任何位置,而且语句流会像贯穿一个 case 标签一样贯穿 default 子句。可以加小编的群466572167,交流学习,群里面也有各类型的学习资料可以学习的。
四、goto语句
不要轻易使用
可以了解一下:
while(1)、for( ; ; )、goto这三者可作为死循环
标签: #c语言分支