Loading... 语句 == 语句,Statement,指分号结束的一行代码 示例1 int a = 10; double b = 12.34; a = (int)(b * b); printf("a= %d " , a); 1. 注释不算语句 2. 原则上,多条语句可以写在一行里 int a= 10; a += 2; printf("a=%d",a); **注:为了可读性,通常一行里只写一条语句!** 特殊的语句 ----- 1 空语句 单独的一个分号,即便什么也没有写,也算一条语句 ; ; ; 2 复合语句 用大括号可以把几条语句合成一起,称为复合语句 小结 -- 介绍了什么是语句,了解即可 5.2 if 语句 --------- if语句表示“当满足XXX条件时,执行YYY” 示例1 int h = 108; // 身高 if (h < 120) { printf("身高小于120,不需要买票"); } if语句的一般形式: if (E1) { S1 } 规则:条件E1为true时,执行语句S1;否则不执行S1。 常见问题 ---- 1 必须练习 看100遍,不如手写一遍。看1练2。 2 if 后面别加分号!! 小结 -- 介绍了 if 语句,用于条件判断 5.3 if 的几种形式 ============ 1. 第一种形式 ``` if (E1) { S1 } ``` 规则:如果E1成立,则执行S1 2. 第二种形式:表示“如果。。否则。。” ``` if (E1) { S1 } else { S2 } ``` 规则:如果E1成立时,则执行S1; 否则,执行S2 3. 第三种形式:表示“如果。。再如果。。再如果。。否则。。” ``` if (E1) { S1 } else if (E2) { S2 } else if (E3) { S3 } else if (…) { … } else { } ``` 常见问题 ---- 1. 重点理解示例2里的多个条件 ```if.. else if .. else if .. ``` 2. 不要写成 if( score >=80 && score<90),画蛇添足! 小结 -- 介绍了 `if` 的各种形式 初始者重点掌握和练习前2者形式: ``` if .. if .. else .. ``` 5.4 for 语句 ========== for语句用来实现“循环”的逻辑 例如,求 1 + 2 + 3 + … + 10 的值 int result = 0; result += 1; result += 2; result += 3; for 语句的一般形式: ------------ ``` for ( E1 ; E2 ; E3 ) { 循环体 S1 } ``` 规则:E1 E2 S1 E3 E1(初始化) E2(循环条件) S1(循环体) E3(后置) ![结构图.png][1] 循环变量 ---- 一般地, 用于循环迭代的变量i可以直接定义在for()里: ``` for (int i = 1; i <= 100; i++) { if (i % 3 == 0) { printf("Got: %d \n" , i); } } ``` 这种用于循环的变量,可以通俗的称为“循环变量” 常见问题 ---- 1 `for( ) { }` 小括号后面不要加分号 2 单步调试练习时,N值设小一点以方便观察 比如,要求1到100到和,可以先试试1到4的和 小结 -- 介绍了 for 语句的基本语法形式 5.5 break 与 continue ==================== `break` : 退出循环 `continue`: 跳过本轮循环 ( 跳到下一轮 ) break 语句 -------- 示例1 : ``` for (int i = 1; i <= 100; i++) { if (i >= 5) { break; // 退出循环 } printf("%d \n", i); } ``` continue 语句 ----------- 示例2 打印所有1-20的数,当n为4的整数倍时除外 ``` for (int i = 1; i <= 20; i++) { if (i % 4 == 0) { continue; // 跳过本轮 } printf("%d \n", i); } ``` 常见问题 ---- 1. break 和 continue 必须放在循环里面 如果根本没有 for () 循环,那么就不要乱加 break了 小结 -- 介绍了 break 与 continue 的作用 5.6 for 的几种形式 ============= for语句的一般形式: ``` for ( E1 ; E2 ; E3 ) { 循环体 S1 } ``` 其中,E1, E2, E3 均可以为空 示例:打印1,2,3, … ,10 常规写法: ----- ``` for (int i = 1; i <= 10; i++) { printf("%d \n", i); } ``` 第1种变形: ------ E1为空 ,把初始化放在前面写 ``` int i = 1; for ( ; i <= 10 ; i++ ) { printf("%d \n", i); } ``` 第2种变形: ------ E2为空 ( 默认为true) ,把条件判断放在循环体里 ``` for ( int i=1 ; ; i++ ) { if (i > 10) // 添加终止条件,避免“死循环” { break; } printf("%d \n", i); } ``` 第3种变形: ------ E3为空 ,附加在循环体的后面 ``` for (int i=1 ; i<=10 ; ) { printf("%d \n", i); i++; } ``` 最夸张的: ----- E1,E2,E3 均为空,也是可以的,虽然奇怪一点 ``` int i = 1; for ( ; ; ) { if (i > 10) { break; } printf("%d \n", i); i++; } ``` 小结 -- 介绍了 for 语句的几种可能的变化 其中,E1,E2,E3 都可以置空,比较灵活。 **注:初学时先掌握最普通的形式即可** 5.7 嵌套 ====== 嵌套,并不是一个语法,而是一个很自然的现象 例如,在`for` 里可以嵌套一个 `if` … ``` for (int i = 1; i <= 20; i++) { if (i % 4 == 0) { continue; } printf("%d \n", i); } ``` 为什么可以嵌套 因为 `if (){}` 在整体上可以视为一条语句,即 复合语句 ``` for (int i = 1; i <= 20; i++) { if (i % 4 == 0) { continue; } printf("%d \n", i); } ``` 常见嵌套形式 ``` if ( ... ) { for (...) { } } ``` ``` for (...) { for (...) { for(...) {} } } ``` 小结 -- 介绍了 if 语句 和 for 语句嵌套的现象 嵌套是很常见的现象,因为它们是复合语句 5.8 while 语句 ============ while 语句也用于实现“循环”的逻辑 一般形式为: ------ ``` while ( E1 ) { 循环体 S1 } ``` 规则:当条件E1成立时,执行循环体S1 小结 -- 在C语言里,表示“循环”逻辑的语法有3种 ``` for ( E1; E2; E3) { S1 } while( E1 ) { S1 } do { S1 } while (E1); ``` 这三种语法可以互相替代,并没有说哪一种更有优势 [1]: http://wmicheng.top/usr/uploads/2020/10/552115891.png 最后修改:2020 年 10 月 31 日 © 允许规范转载 打赏 赞赏作者 赞 如果觉得我的文章对你有用,请随意赞赏