本节主要说c语言中的分支结构。
c语言中分支结构有两大类:一种是if,一种是switch。
一、if结构
//if结构,语法: //第一种: if(表达式){ //语句块 } //第二种: if(表达式){ //语句块 }else{ //语句块 } //第三种: if(表达式){ //语句块 if(表达式){ //语句块 }else{ //语句块 } }else{ //语句块 } //第四种 if(表达式){ //语句块 }else if(表达式1){ //语句块1 }else{ //语句块2 } /* if语句需要注意的地方: 1.if语句后面千万不要加分号,如果你非要手贱加一个分号,那么就加在大括号后面。 2.if语句的大括号,其实是可以省略的! 当你省略大括号的时候,那么if 语句只能管到离它最近的一句语句,但是这句语句不能是声明变量的语句。 3.if语句里面可以写任意条语句(必须要有大括号)。 4.非0的数就是真,0就是假,避免让你的表达式是永真或永假。 5.if语句里面定义的变量只能在它语句块里面访问。 6.if语句小括号里面的表达式可以写任意表达式。 */
上面说了if结构,不过在某些时候可能觉得用 if 会显得代码块有点臃肿。下面介绍一种表达式。
二、三目表达式
//语法: // 表达式1 ? 表达式2 : 表达式3 ; //例如: int num1 = 10,num2 = 9; num1>num2?num1++:num2++; printf(" num1= %d num2 = %d",num1,num2); //输出 11,9
顺便介绍下获取随机数的函数,需要导入头文件,include <stdlib.h>
include <stdlib.h> arc4random_uniform(u_int32_t); //括号中填正整数,如果填n,则会随机生成0到n之间的数字,不包括n。
三、switch结构
//switch结构语法 switch(表达式){ case 常量表达式1: //语句块 break; ......... default: printf("num = %d",num); break; } //运行机制:先得出表达式的结果,根据结果跳转到对应的case里面去执行,如果没有对应的case,则会跳转到default中。 //如果case块后不加break,会发生穿透(从当前的case块执行完之后,进入下一个case块)。 /* 注意: 1、switch语句后的小括号里面只能写整数类型的表达式,否则会报错。 2、case后面只能接常量表达式且不能重复。 3、case后面不能紧跟着就声明变量,若要声明,请在声明之前加1条或者多条语句。 4、如果一定要直接声明变量,请在case块加上大括号。 5、如果不加大括号声明的变量,其他case块也可以使用;反之则不能使用 6、default语句可以写在switch块中任意位置,不影响程序执行。 */
凡是能用if的地方,都可以用switch替换,反之,亦然。