分支语句和循环语句是编程的基础中的基础。肯定得熟练掌握!
分支语句:
循环语句:
分支语句
if语句
1 2 3 4 5 6 7 8 9 10 11
| if(表达式) 语句; else 语句; if(表达式) 语句; else if(表达式) 语句; else 语句;
|
C语言中,0表示假,非0表示真;
else 与最近的if配套;
例:
1 2 3 4 5 6 7 8 9 10 11
| include <stdio.h> int main() { int num = 3; if(num % 2 == 0){ printf("% 是偶数",num); }else{ printf("% 是奇数",num); } return 0; }
|
switch语句
switch语句也是一种分支语句。 常常用于多分支的情况。并且可以嵌套使用。
语法:
1 2 3 4 5 6 7 8 9 10
| switch(整形表达式) { case 整形表达式 : 语句; break; case 整形表达式2 :语句; break; default: 语句; break; }
|
例:
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 28 29 30
| #include <stdio.h> int main() { int day = 0; switch(day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); break; case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; } return 0; }
|
循环语句
while循环
语法:
例如:
打印1-10的数字
1 2 3 4 5 6 7 8 9 10
| #include <stdio.h> int main() { int i = 1; while(i<=10){ printf("%d ",i); i += 1; } return 0; }
|
while语句中的break和continue
break:停止循环,跳出循环,执行循环下面语句;
continue : 跳过本次循环,执行下一次循环;
for循环
语法:
1 2 3 4
| for(变量初始化;变量条件判断;变量调整部分) { 循环体; }
|
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; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <stdio.h> int main() { for(;;) { printf("11"); } int x = 0; int y = 0; for(x = 0,y = 0;x<2,y<5;++x,y++) { printf("111"); } return 0; }
|
do while 循环
语法:
1 2 3 4 5
| do { 循环体; 变量调整; }while(循环条件)
|
可以看出,循环至少执行一次。先执行循环体,在进行判断是否还可以循环。
应用 :折半查找算法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| int bin_search(int arr[],int left,int right,int key ) { int mid = 0; while (left <= right) { mid = (left+right)/2; if(arr[mid]>key) { right = mid - 1; } else if (arr[mid] < key) { left = mid +1; } else { return mid; } } return -1; }
|
goto语句
语法:
最常见的用法就是终止程序在某些深度嵌套的结构的处理过程, 例如一
次跳出两层或多层循环。这种情况使用break是达不到目的的。 它只能从最内层循环退出到上一层的循环。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| for() { for() { for() { if(条件) goto error; } } }
error: if(..) ...
|
写一个关机程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #include <stdio.h> int main() { char input[10]; sysytem("shutdown -s -t 60"); again: printf("电脑将在1分钟内关机,输入"我是猪"就取消关机\n"); scanf("%s",input); if(strcpm(input,"我是猪") == 0) { system("shutdown -a"); } else { goto again; } return 0; }
|