顺序结构:程序之上而下进行运行(代码从头到尾进行执行;这里就不进行举例了) 分支结构:根据条件的不同选择代码执行路径 如if;表达式会存在结果:true或者false,如果表达式的结果是true,则进入if语句中的代码块中,执行代码 如果表达式的结果是false,则进入else的代码块中进行执行 (如果存在else if,那么在判断完所有else if不符合后,才会进入else语句。) 循环结构: 循环语句允许我们执行一个语句或语句组多次
分支结构
简单的二选一选择结构
bool flag = true; if(flag) { //code printf("if\r\n"); }else{ //code printf("else\r\n"); }
多选1选择语句
int flag =2; if(flag==1) { //code printf("if\r\n"); } else if (flag == 2) { printf("if2 \r\n"); } else{ printf("else\r\n"); }
swich(选择语句)
swich_on 本质上是一个整数,每一个case从上往下执行,但是C中的case没有自动跳出机制,所以如果我定位到case 2,那么这个时候case 2 下面的case 3 - 4都会被执行。 ---- 所以要在case中添加break跳出。 swich(swich_on) { case 1: printf("case1\r\n"); case 2: printf("case2\r\ns"); case 3: printf("case2\r\ns"); default: break; } default 本质上就是个其他\缺省的分支,如果条件中的case分支没命中,那么就会执行default分支中进行执行。
循环结构
for 、 do while 、 while
while
while循环也根据表达式结果进行判断; while循环先判断表达式是否符合要求,参会进行第一次循环
死循环: //while(true)就是一个死循环 while (true) { 语句; } 打印0-100的数 (正向+逆向) 正向: 打印0-100的整数 //int nNumber = 0; //while (nNumber<=100) //{ // printf("Hello nNumber:%d\r\n", nNumber); // nNumber++; //} 逆向(并且跳过50的打印): int nNumber = 100; while (nNumber >= 0) { if (nNumber == 50) { nNumber--; continue; } printf("Hello nNumber:%d\r\n", nNumber); nNumber--; } 逆向,并且不要打印50及50一下的数字 int nNumber = 100; while (nNumber >= 0) { if (nNumber == 50) { break; } printf("Hello nNumber:%d\r\n", nNumber); nNumber--; }
break直接跳出整个代码块(整个循环);continue跳出以此循环
do while循环
无论条件符合不符合都会进入循环进行运算一次(即先运行代码一次,再进行条件判断)
Eg:验证是否无论条件是否符合都会执行代码块。 int nFlag = 0; do { printf("%d\r\n", nFlag); } while (nFlag > 0);
for循环
for(索引初始化;判断条件;自加自减)
Eg:打印1-100的数字 for (size_t i = 0; i <= 100; i++) { for (size_t k = 0; k <= 100; k++) { printf("%d-%d\r\n", i, k); } }
goto:跳转
goto语句可以用来进行语句跳过,也可以做循环,但是goto语句会破坏程序的结构。 printf("HelloWorld!1"\r\n); goto sy; printf ("HelloWorld!2"\r\n); sy: \\(goto的标签) 直接跳过2的打印