if语句结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| if(表达式) 语句;
if(表达式) 语句1; else 语句2;
if(表达式1) 语句1; else if(表达式2) 语句2; else 语句3;
|
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <stdio.h> int main() { int age = 0; scanf("%d", &age); if(age<18) { printf("少年\n"); } else if(age>=18 && age<30) { printf("青年\n"); } else if(age>=30 && age<50) { printf("中年\n"); } else if(age>=50 && age<80) { printf("老年\n"); } else { printf("老寿星\n"); } }
|
悬空else
1 2 3 4 5 6 7 8 9 10 11 12
| #include <stdio.h> int main() { int a = 0; int b = 2; if(a == 1) if(b == 2) printf("hehe\n"); else printf("haha\n"); return 0; }
|
output:啥也不输出
else 与 最近 未匹配的if 匹配,即总跟最近的 未配对 的if进行匹配
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| //适当的使用{}可以使代码的逻辑更加清楚。 //代码风格很重要 #include <stdio.h> int main() { int a = 0; int b = 2; if(a == 1) { if(b == 2) { printf("hehe\n"); } } else printf("haha\n"); } return 0; }
|
输出:
switch语句结构
switch语句也是一种分支语句。 常常用于多分支的情况。
switch语句后面的()内可以跟 整型变量、整型常量、整形表达式(当然这些也可以是字符型,不过字符型的本质仍然是整型),而 case 后面只能跟 整型常量,或者字符型常量,必须是常量,const修饰的常变量是不可以的,因为其本质上仍是变量
switch语句 没有遇到break,程序就会一直执行下去,此时无论后面的case是否匹配都将执行,直到跳出语句块。
1 2 3 4 5 6 7 8 9 10
| switch(整型表达式) { case 整形常量表达式: 语句; case 整形常量表达式: 语句; ...... default: 语句; }
|
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <stdio.h> int main() { int day = 0; scanf("%d", &day); switch(day) { case 1: case 2: case 3: case 4: case 5: printf("weekday\n"); break; case 6: case 7: printf("weekend\n"); break; default: printf("输入错误!!"); break; } return 0; }
|
循环语句
while循环结构
实例
1 2 3 4 5 6 7 8 9 10 11
| #include <stdio.h> int main() { int i = 1; while(i<=10) { printf("%d ", i); i = i+1; } return 0; }
|
输出:
break和continue
break 结束(跳出)循环,无论break用在switch还是循环中,均只能退出一层switch或者一层循环
continue 终止 本次 循环,本次循环中 continue 后边的代码不会再执行,直接跳转到 while 语句的判断部分。进行下一次循环的入口判断。
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <stdio.h> int main() { int i = 1; while(i<=10) { if(i == 5) break; printf("%d ", i); i = i+1; } return 0; }
|
输出:
仔细想想下面这题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <stdio.h> int main() { int i = 1; while(i<=10) { if(i == 5) continue; printf("%d ", i); i = i+1; } return 0; }
|
输出:
do … while循环结构
1 2 3 4
| do{ 循环语句; } while ( 表达式 );
|
for循环结构
表达式1 为初始化部分,用于初始化循环变量的。
表达式2 为条件判断部分,用于判断循环时候终止。
表达式3 为调整部分,用于循环条件的调整。
三个部分都可省略,但是不建议初学时省略,容易导致问 题。省略表达式2 相当于while(1)
1 2
| for(表达式1; 表达式2; 表达式3) 循环语句;
|
实例
1 2 3 4 5 6 7 8 9 10 11
| #include <stdio.h> int main() { int i = 0; for(i=1; i<=10; i++) { printf("%d ", i); } return 0; }
|
输出: