C语言中
有表达式语句 函数调用语句 控制语句 复合语句 空语句
分支语句和循环语句是控制语句
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成
(条件判断语句)分支语句:if 和 switch
(循环执行语句)循环语句:while 、for 、 do while、
(转向语句)特殊语句:go to 、break 、continue 、 return
1.如要使用if条件符合事实就ok 例如
#include<stdio.h> int main() { int age = 10; if (age >= 18) { printf("成年"); } return 0; }
2.if与else配合 else就是除了if的条件不符合就触发另一个情况
#include<stdio.h> int main() { int age = 10; if (age >= 18) { printf("成年"); } else { printf("不成年"); } return 0; }
3.if与else if配合 就是如果不符合if后条件的另一个条件执行(esle if就可以用来多分支实现)
int main() { int age = 10; if (age >= 18) { printf("成年"); } else if(age < 0) { printf("输入错误"); } else { printf("未成年"); } return 0; }
1.switch一般和case、default、break配合使用
switch提供条件 case集合条件 default是除了case以外其它条件 break是跳出选择语句
首先解释为什么要跳出选择:switch选择中,case相当于是这个函数的入口,进去后会不断的向下执行函数直到全部入口以下的一起运行,但是break会打断运行,一般情况下case和break是绑定运行的。
正常使用例子
#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; }
2.配合defual使用
#include <stdio.h> int main() { int day = 0; switch (day) { case 1: printf("星期一\n"); break; default: printf("非星期一\n"); break; } return 0; }
1.while(真/假)或者 (判断语句)
如果是真while就循环 假while就停止循环 假是0 真是非假的数
例如 循环打印1-10 (用的判断语句)
#include <stdio.h> int main() { int i = 1; while(i<=10) { printf("%d ", i); i = i+1; } return 0; }
2.while配合break和continue
如果是break就是打断循环并且跳出循环continue就是当执行到contine时从它所在的地方打断循环直接跳到下一次循环语句。
例如 i等5就打断
#include <stdio.h> int main() { int i = 1; while (i <= 10) { if (i == 5) break; printf("%d ", i); i = i + 1; } return 0; }
和 i等5就跳过本次循环
#include <stdio.h> int main() { int i = 1; while (i <= 10) { if (i == 5) continue; printf("%d ", i); i = i + 1; } return 0; }
1. 使用模板for(配置初始化;判定循环条件;调整循环语句)下一行加上循环语句
比如打印1-10
#include <stdio.h> int main() { int i = 0; //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/) for (i = 1; i <= 10; i++) { printf("%d ", i); } return 0; }
2.for配合continue和break 效果基本和while循环差不多
例如 i等于五跳出循环
#include <stdio.h> int main() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) break; printf("%d ", i); } return 0; }
和 i等于五跳出本次循环
#include <stdio.h> int main() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) continue; printf("%d ", i); } return 0; }
3.for变种
无尽循环for
int main() { for (;;) { printf("hehe\n"); } return 0; }
循环叠加
#include <stdio.h> int main() { int i = 0; int j = 0; for (i = 0; i < 10; i++) { for (j = 0; j < 10; j++) { printf("+1\n"); } } return 0; }
无初始化循环
#include <stdio.h> int main() { int i = 0; int j = 0; { for (; j < 10; j++) { printf("+1\n"); } } return 0; }
多变量控制循环
#include<stdio.h> int main() { int x, y; for (x = 0, y = 0; x < 2 && y < 5; ++x, y++) { printf("+1\n"); } return 0; }
1.do.....................(需要循环的内容)........while(判断条件)
效果类似于把while反过来
例如
#include <stdio.h> int main() { int i = 10; do { printf("%d\n", i); } while (i < 10); return 0; }
2.配合break和continue使用 基本和while一摸一样
例如 i=5跳出循环
#include <stdio.h> int main() { int i = 10; do { if (5 == i) break; printf("%d\n", i); } while (i < 10); return 0; }
和 i=5跳出本次循环
#include <stdio.h> int main() { int i = 10; do { if (5 == i) continue; printf("%d\n", i); } while (i < 10); return 0; }
在程序中插入入口 通过goto跳转
可以有效地跳出循环
成效为
int main() { for (;;) for (;;) for (;;) for (;;) //显然这里跳出需要好几个break 但是一个goto就可以完成 goto A; A: printf("跳出了"); return 0; }