C语言总结(选择结构和循环结构)

  • Post author:
  • Post category:其他


一、选择结构

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(注意不要循环太久哦,避免死机等问题)



版权声明:本文为cxywcs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。