一、选择结构
   
    1、if 选择语句
   
    (1)单分支if语句
   
    
     语法结构:
    
   
if(条件判断表达式){
        语句;
}如果条件判断表达式的值为“真”,则执行语句;如果为“假”,则不执行语句。
例:输入两个整数,输出两个数中的最大数。
#include <stdio.h>
int main(){
    int a,b;
    printf("请输入两个整数:\n");
    scanf("%d%d",&a,&b);
    if(a>b){                     //判断是否a>b
        printf("最大数是%d",a);
    }
    if(a<=b){                    //判断是否a<=b
        printf("最大数是%d",b);    
    }
    return 0;
}
    
     运行结果
    
     
   
    (2)双分支if…else语句
   
    
     语法结构:
    
   
if(条件判断表达式){
    语句1;
}
else{
    语句2;
}如果条件判断表达式的值为“真”,则执行语句1,否则(条件判断表达式的值为“假”)执行语句2。
else只能和if配合使用,不能单独使用。
例:输入一个整数,判断该数是正数,还是负数。
#include <stdio.h>
int main(){
    int x;                       //定义整数变量x
    printf("请输入一个整数:");
    scanf("%d",&x);
    if(x>=0){                    //判断是否x>=0
        printf("%d是正数",x);    //当x>=0时执行语句,不是时执行else的语句
    }else{                                        
        printf("%d是负数",x);
    }
    return 0;
}
    
     运行结果
    
    
     
   
    (3)多分支if语句(嵌套)
   
if…else语句中,其中if分支或者else分支又可以是一个if语句或者if…else语句,这称为if语句的嵌套,或者多分支if语句。if…else语句适用于对两个条件进行判断的操作。
如果程序结构中有多个条件的分支判断,可以使用多分支if语句。
    2、switch 语句
   
switch语句是多分支选择语句。
    
     语法结构:
    
   
switch(表达式){
    case 常量表达式1: 语句1; break;
    case 常量表达式2: 语句2; break;
    ·    ……
    ·    ……
    ·    ……
    case 常量表达式n: 语句n; break;
    default:默认语句;
}
switch后面的表达式就是要执行判断的条件,然后使用case关键字表示检验条件符合的各种常量表达式,其后的各语句是相应的操作。其中还有一个default关键字,作用是如果没有符合条件的情况,那么执行default后的默认语句。
switch后面表达式的值,与case后面的常量表达式进行比较,两者相同时执行该case后的语句。
如果case对应的语句后面有break语句,则程序跳出switch语句;如果没有break语句,则会继续执行下一个case对应的语句。
例:使用数字1~7来表示星期一至星期日。根据输入的数字1~7,输出对应的星期值。
#include <stdio.h>
int main(){
	int week;
	printf("请输入数字1~7:\n");
	scanf("%d",&week);
	switch(week){
		case 1:printf("星期一"); break;
		case 2:printf("星期二"); break;
		case 3:printf("星期三"); break;
		case 4:printf("星期四"); break;
		case 5:printf("星期五"); break;
		case 6:printf("星期六"); break;
		case 7:printf("星期日"); break;
	default:printf("请输入1-7的之间数字"); 
    }
    return 0;
}
    
     运行结果
    
    
     
   
    二、循环结构
   
    1、while 语句
   
while循环语句属于当型循环,即先判断条件,再执行循环体语句。
使用while语句可以解决当某个条件满足时反复执行某个循环体的问题。
    
     语法结构:
    
   
while(表达式){
    语句块(循环体)
}while语句首先检验表达式的条件,如果条件为真时,执行语句块(循环体)。每执行一遍循环,程序都将回到while语句处,重新检验条件是否满足。如果条件不满足,则跳过这个while语句,直接执行后面的程序代码。
    例:使用while语句,输出50个“
    
     *
    
    ”  。
   
#include <stdio.h>
int main(){
    int i=50;            //定义i等于50
    while(i>0){          //判断i大于0
        printf("*");
        i--;             //自减后再循环,直到i不大于0停止循环
    }
    return 0;
}
    
     运行结果
    
     
   
    2、do-while 语句
   
do-while 循环语句属于直到型循环,这种类型的循环首先执行一次循环体,然后对是否执行下一次循环体进行条件判断。
    
     语法结构:
    
   
do{
    语句块(循环体)    
}while(表达式);do-while 语句是这样执行的,首先执行一次循环体语句中的内容,然后判断表达式,当表达式为真时,返回重新执行循环体语句,然后再次判断表达式,直到表达式的值为假,此时循环结束。
例:某班级一个小组10名学生进行考试,现要统计该小组的总分和平均分。
#include <stdio.h>
int main(){
	float a=1,sum=0,score;
	printf("请输入10名学生的成绩:\n");
	do{
		scanf("%f",&score);
		a++;
		sum+=score;    //进行累加
	}while(a<=10);     //循环条件
	printf("总分:%.2f\t平均分:%.2f",sum,sum/10);
	return 0; 
} 
    
     运行结果
    
     
   
    3、for 语句
   
for语句是一种方便灵活、功能强大的循环语句。for语句可以用于循环次数确定的情况,还可以用于循环次数不确定但给出了循环结束条件的情况。
    
     语法结构:
    
   
for(循环变量赋初值;循环条件;循环变量改变){
        语句块
}(1)执行循环变量赋初值。
(2)执行循环条件,若条件值为真,则执行执行语句块;若为假,则结束循环。
(3)执行循环变量改变,再回到步骤(2)继续执行。
例:输出1到100的数字。
#include <stdio.h>
int main(){
	int a;
	for(a=1;a<=100;a++){    //从1开始循环到100,每次循环都输出a
		printf("%d\n",a);
	}
    return 0;
}
    
     运行结果:
    
    
     1 2 3 4 5 6 7 8 9…………95 96 97 98 99 100
    
   
    死循环
   
无法终止的循环常被称为死循环或者无限循环。
例如以下代码:
#include <stdio.h>
int main(){
	int a=1;
	while(a>0){
		printf("6");
	}
	return 0;
} a永远大于0就一直循环输出6(注意不要循环太久哦,避免死机等问题)
 
