if语句 语法结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 if (表达式)    语句; if (表达式)    语句; else     语句2 ; if (表达式)    语句; else  if (表达式2 )    语句2 ; else     语句3 ; 
若表达式为真,则语句执行
在C语言中,0表示假,非0表示真
 
例子: 
1 2 3 4 5 6 7 8 9 int  main () { 	int  age = 10 ; 	if  (age>=18 ) 		printf ("成年\n" ); 	else  		printf ("未成年\n" ); 	return  0 ; } 
不过这种写法只能执行一条语句
所以我们可以使用以下的写法,使用{}
例子: 
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 31 32 33 34 35 int  main () { 	int  age = 180 ; 	if  (age<18 ) 	{ 		printf ("少年\n" ); 		printf ("少年\n" ); 	} 	else  if  (age >= 18  && age <= 26 ) 	{ 		printf ("青年\n" ); 		printf ("青年\n" ); 	} 	else  if  (age >= 26  && age <= 40 ) 	{ 		printf ("壮年\n" ); 		printf ("壮年\n" ); 	} 	else  if  (age >= 40  && age <= 60 ) 	{ 		printf ("中年\n" ); 		printf ("中年\n" ); 	} 	else  if  (age >= 60  && age <= 120 ) 	{ 		printf ("老年\n" ); 		printf ("老年\n" ); 	} 	else  	{ 		printf ("老不死\n" ); 		printf ("老不死\n" ); 	} 	return  0 ; } 
悬空else 请问以下代码打印输出什么?
1 2 3 4 5 6 7 8 9 10 11 int  main () { 	int  a = 0 ; 	int  b = 2 ; 	if  (a == 1 ) 		if  (b == 2 ) 			printf ("111\n" ); 	else  		printf ("222\n" ); 	return  0 ; } 
答案:不打印
因为else会匹配最近的if语句,而不是看起来和它对齐的语句
所以为了代码的逻辑清晰,最好适当使用{}
改正: 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 int  main () { 	int  a = 0 ; 	int  b = 2 ; 	if  (a == 1 ) 	{ 		if  (b == 2 ) 		{ 			printf ("111\n" ); 		} 	} 	else  	{ 		printf ("222\n" ); 	} 	return  0 ; } 
练习 
1.判断一个数是否为奇数
2.输出1-100之间的奇数
 
答案: 
例题一:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 int  main () { 	int  a = 0 ; 	scanf ("%d" , &a); 	if  (a % 2  == 1 ) 	{ 		printf ("%d是奇数\n" , a); 	} 	else   	{ 		printf ("%d不是奇数\n" , a); 	} 	return  0 ; } 
例题二:
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 int  main () { 	int  a = 1 ; 	while  (a <= 100 ) 	{ 		if  (a % 2  == 1 ) 		{ 			printf ("%d是奇数\n" , a); 		} 		a++; 	} 	 	for  ( int  i = 1 ; i <= 100 ; i++) 	{ 		if  (i % 2  == 1 ) 		{ 			printf ("%d是奇数\n" , i); 		} 	} 	 	for  (int  i = 1 ; i <= 100 ; i+=2 ) 	{ 			printf ("%d是奇数\n" , i); 	} 	return  0 ; } 
switch 语句 switch语句常用于多分支的情况。
比如
输入1 ,输出星期一
输入2,输出星期二
输入3 ,输出星期三
输入4 ,输出星期四
输入5 ,输出星期五
输入6 ,输出星期六
输入7 ,输出星期天
 
如果使用if语句的话,过于复杂了
所以我们可以使用switch语句
语法结构:
1 2 3 4 5 6 switch (整型表达式){ 	 	case  整型常量表达式; 		语句; } 
而在switch语句中,我们没有办法直接实现分支
所以需要运用到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 31 32 int  main () { 	int  day = 0 ; 	scanf ("%d" , &day); 	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 ; 	default : 		break ; 	} 	return  0 ; } 
那么我们需要输入15,输出工作日;输入67,输出休息日,该怎么做呢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 int  main () { 	int  day = 0 ; 	scanf ("%d" , &day); 	switch  (day) 	{ 	case  1 : 	case  2 : 	case  3 : 	case  4 :	 	case  5 : 		printf ("工作日\n" ); 		break ; 	case  6 : 	case  7 : 		printf ("休息日\n" ); 		break ; 	default : 		break ; 	} 	return  0 ; } 
default 子句 在switch语句中,如果表达的值和所有的case标签都不匹配
我们可以加上一条default子句
当switch表达式的值不匹配所有的case标签的值时,执行default子句后的语句;
每个switch语句只能有一条default子句 
但它可以出现在语句列表的任意位置
练习 请问以下代码打印输出什么?
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 int  main () { 	int  n = 1 ; 	int  m = 2 ; 	switch  (n) 	{ 	case  1 :m++; 	case  2 :n++; 	case  3 : 		 		switch  (n) 		{ 		case  1 : 			n++; 		case  2 : 			m++; 			n++; 			break ; 		} 	case  4 :	 		m++; 		break ; 	default : 		break ; 	} 	printf ("m = %d,n = %d\n" , m, n); 	return  0 ; 
答案:m = 5,n = 3
注意:break只是终止当前switch语句