循环结构和选择结构
if else 语句
1 | if(判断条件){ |

例:
1 |
|
运行结果:
输入两个整数: 34 28↙
34 和 28 的较大值是: 34
只使用 if 语句
1 | if(判断条件){ 语句块 } |
只使用 if 语句来求两个数中的较大值:
1 |
|
运行结果:
输入两个整数: 34 28
34 和 28 的较大值是: 34
多个 if else 语句
1 | if(判断条件 1){ |
例:
使用多个 if else 语句判断输入的字符的类别
1 |
|
运行结果:
Input a character:e↙
This is a small letter
if 语句的嵌套
1 |
|
运行结果:
Input two numbers:12 68
a<b
if 语句嵌套时,要注意 if 和 else 的配对问题。 C 语言规定, else 总是与它前面最近的 if 配对,例 :
1 | if (a != b) // ① |
③和②配对,而不是和①配对 。
C 语言逻辑运算符
\1) 与运算(&&)
参与运算的两个表达式都为真时,结果才为真,否则为假。例如:
5&&0
5 为真, 0 为假,相与的结果为假,也就是 0。
(5>0) && (4>2)
5>0 的结果是 1,为真, 4>2 结果是 1,也为真,所以相与的结果为真,也就是 1。
\2) 或运算(||)
参与运算的两个表达式只要有一个为真,结果就为真;两个表达式都为假时结果才为假。例如:
10 || 0
10 为真, 0 为假,相或的结果为真,也就是 1。
(5>0) || (5>8)
5>0 的结果是 1,为真, 5>8 的结果是 0,为假,所以相或的结果为真,也就是 1。
\3) 非运算(!)
参与运算的表达式为真时,结果为假;参与运算的表达式为假时,结果为真。例如:
!0
0 为假,非运算的结果为真,也就是 1。
!(5>0)
5>0 的结果是 1,为真,非运算的结果为假,也就是 0。
优先级
逻辑运算符和其它运算符优先级从低到高依次为:
赋值运算符(=) < &&和|| < 关系运算符 < 算术运算符 < 非(!)
&& 和 || 低于关系运算符, ! 高于算术运算符。
按照运算符的优先顺序可以得出:
a>b && c>d 等价于 (a>b)&&(c>d)
!b==c||d<a 等价于 ((!b)==c)||(d<a)
a+b>c&&x+y<b 等价于 ((a+b)>c)&&((x+y)<b)
另外,逻辑表达式也可以嵌套使用,例如 a>b && b || 9>c, a || c>d && !p。
switch case 语句
1 | switch(表达式){ |
条件运算符(? :)
语法格式:
1 | 表达式 1 ? 表达式 2 : 表达式 3 |
如果表达式 1 的值为真,则以表达式 2 的值作为
整个条件表达式的值,否则以表达式 3 的值作为整个条件表达式的值。条件表达式通常用于赋值语句之中。
例:
1 | if (a>b) { |
等价于
1 | max = (a>b) ? a : b; |
使用条件表达式时,还应注意以下几点:
\1) 条件运算符的优先级低于关系运算符和算术运算符,但高于赋值符。因此
max=(a>b) ? a : b;
可以去掉括号而写为
max=a>b ? a : b;
\2) 条件运算符?和:是一对运算符,不能分开单独使用。
\3) 条件运算符的结合方向是自右至左。例如:
a>b ? a : c>d ? c : d;
应理解为:
a>b ? a : ( c>d ? c : d );
这也就是条件表达式嵌套的情形,即其中的表达式又是一个条件表达式。
while 循环
1 | while(表达式) |
意思是,先计算“表达式”的值,当值为真(非 0)时, 执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行 while后面的代码。
do-while 循环
1 | do{ |
do-while 循环与 while 循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此, do-while 循环至少要执行一次“语句块”。
for 循环
1 | for(表达式 1; 表达式 2; 表达式 3){ |
它的运行过程为:
\1) 先执行“表达式 1”。
\2) 再执行“表达式 2”,如果它的值为真(非 0),则执行循环体,否则结束循环。
\3) 执行完循环体后再执行“表达式 3”。
\4) 重复执行步骤 2) 和 3),直到“表达式 2”的值为假,就结束循环。
break 关键字
当 break 关键字用于 while、 for 循环时,会终止循环而执行整个循环语句后面的代码。 break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环 。
例:使用 while 循环计算 1 加到 100 的值:
1 |
|
运行结果:5050
while 循环条件为 1,是一个死循环。当执行到第 100 次循环的时候,计算完 i++;后 i 的值为 101,此时 if 语句的条件 i> 100 成立,执行 break;语句,结束循环。
在多层循环中,一个 break 语句只向外跳一层。
continue 语句
continue 语句的作用是跳过循环体中剩余的语句而强制进入下一次循环。 continue 语句只用在 while、 for 循环中,常与 if 条件语句一起使用,判断条件是否成立。