程序中全部的语句都是从上到下逐条执行,这样的程序结构叫作顺序结构。顺序结构式程序开发中最多见的一种结构,它能够包含多种语句,如变量的定义语句、输入输出语句、赋值语句等。函数
#include <stdio.h> int main(int argc, const char * argv[]) { // insert code here... printf("1"); printf("2"); printf("3"); printf("4"); printf("5"); printf("6"); printf("7"); return 0; }
以上输出结果分别是:一、二、三、四、5从运行结果能够看出,程序是按照语句的前后顺序执行的所以能够说明程序是一个顺序结构的程序。spa
if条件语句分为三种语法格式,每一种格式都有其自身的特色,下面分别进行其讲解。 code
#include <stdio.h> int main(int argc, const char * argv[]) { // insert code here... int i = 2; if(i > 0) { printf("i是一个大于0的变量"); } }
#include <stdio.h> int main(int argc, const char * argv[]) { // insert code here... int i = 2; if(i > 0) { printf("i是一个大于0的变量"); }else{ printf("i不是一个大于0的变量"); } }
#include <stdio.h> int main(int argc, const char * argv[]) { // insert code here... int i = 2; if(i < 0) { printf("你说男的"); }else if(i == 0){ printf("你是人妖"); }else{ printf("你是女的"); } }
三元运算符开发
在c语言中有一种特殊的运算叫作三元运算,它和if....else 语句相似,具体语法格式以下: it
判断条件?表达式1:表达式2 io
三元运算一般用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的值,不然结果为表达式2的值。for循环
#include <stdio.h> int main(int argc, const char * argv[]) { //求出x、y的最大值 int x = 9; int y = 15; int max = 0; if (x > y) { max = x; }else{ max = y; } //以上条件判断能够写成以下 max = x > y ? x : y; }
switch条件语句class
switch 条件语句也是一种很经常使用的选择语句,和if条件语句不一样,它只能针对某个表达式的值做出判断,从而决定程序执行哪一段代码。以下:变量
#include <stdio.h> int main(int argc, const char * argv[]) { int week = 0; switch (week) { case 0: printf("星期日"); break; case 1: printf("星期一"); break; case 2: printf("星期二"); break; case 3: printf("星期三"); break; case 4: printf("星期四"); break; case 5: printf("星期五"); break; case 6: printf("星期六"); break; default: break; } }
注:break 是跳出循环语句,之后会讲解到循环
一、while循环语句和switch条件判断语句很相似,都是根据条件判断来决定是否执行大括号内的执行语句。区别在于,while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会一直执行,直到条件不成立,while循环结束。while循环语句的具体语法格式以下:
#include <stdio.h> int main(int argc, const char * argv[]) { int x = 0; while (x <= 4) { printf("条件成立"); //打印x的值 x++; } }
在上面的语法格式中,{}中的执行语句被称做循环体,循环体是否执行取决于循环条件。当循环条件为true时,循环体就会被执行。循环体执行完毕时会继续判断循环条件,如条件仍为true时,循环体就会被执行。循环体执行完毕时会继续判断循环条件,如条件仍为true则会继续执行,直到循环条件为false时,整个循环过程才会结束。
二、do...while 循环语句和while循环语句功能相似,两者的不一样之处在于,while语句须要先判断循环条件,而后根据判断结果来决定是否执行大括号中的代码,二do....while循环语句先要执行一次大括号内的代码在判断循环条件,其具体语法格式以下:
#include <stdio.h> int main(int argc, const char * argv[]) { int x = 0; do { printf("条件成立"); //条件成立 } while (x <= 4); }
do...while 和 while可以实现一样的功能。然而在程序运行过程当中,这两种语句仍是有差异的。若是循环条件在循环语句开始时就不成立,那么while循环的循环体一次都不会执行,而do...while循环的循环体仍是会执行一次。
三、for 循环语句
在前面的小节中分别讲解了while循环和do...whilef循环。在程序开发中,还常常会使用另外一种循环语句;,即for循环,它一般用于循环次数已知的状况,其具体语法格式以下:
#include <stdio.h> int main(int argc, const char * argv[]) { int sum = 0; for (int i = 0; i < 100; i++) { sum += i; } printf("sum = %d \n", sum); return 0; }
循环嵌套
有时为了解决一个较为复杂的问题,须要在一个循环中再定义一个循环,这样的方式被称做循环嵌套,在c语言中,while、do...while、for循环语句均可以进行嵌套,而且它们之间也能够互相嵌套,而且它们之间也能够互相嵌套,这当中最多见的就是在for循环中嵌套for循环,具体语法格式以下:
#include <stdio.h> int main(int argc, const char * argv[]) { for (int row = 0; row < 7; row++) { for (int column = 0; column <= row; column++) { printf("*"); //打印* } printf("\n"); //打印换行 } return 0; } 打印的结果: * ** *** **** ***** ****** ******* Program ended with exit code: 0
内循环根据column 的数量打印*的数量,内部循环结束后执行外部循环的换行操做。
跳转语句用于实现循环执行过程当中程序流程的跳转,在C语言中,跳转语句有break语句、goto语句和continue语句。接下来分别进行详细的讲解。
一、break 语句
在switch条件语句和循环语句中均可以使用break语句。当它出如今switch条件语句中时,做用是终止某个case并跳出switch结构;。当它出如今循环语句中,做用是跳出当前循环语句,以下:
#include <stdio.h> int main(int argc, const char * argv[]) { for (int i = 0; i < 100; i++) { if (i == 6) { break; } printf("i = %d", i); } return 0; }
运行结果打印的是i的值,但并无i = 6的结果,由于当i的值为6时,执行if条件语句跳出了循环。也是就是终止循环了。
二、goto 语句
当break 语句出如今嵌套循环中的内层循环时它只能跳出内层循环,若是想要跳出外层循环则须要对外层循环添加标记,而后使用goto语句。以下:
#include <stdio.h> int main(int argc, const char * argv[]) { for (int i = 0; i < 100; i++) { for (int j = 0; j <= i; j++) { if (i > 3) { goto end; } printf("x"); } printf("\n"); } end: return 0; }
程序运行结果只打印了4行,由于当i为4时执行if语句,goto跳转到end:return 0;结束此主函数,即循环体也结束。
三、continue语句
在执行语句中,若是但愿当即终止本次循环,并执行下一次循环,此时就须要使用continue语句。以下例子:
#include <stdio.h> int main(int argc, const char * argv[]) { //打印100内的奇数 for (int i = 0; i < 100; i++) { if (i % 2 == 0) { continue; } printf("奇数:i = %d", i); } }
当i对2求余的值为0时,结束本次循环执行下一次循环,则打印的就只有奇数了。