C语音中while,do{...}while,for循环,switch,if分支#详讲

一,什么是循环?

循环通俗来讲就是重复做一件事情,转化在电脑上的语言就是在满足条件的时候,反复运行其内的代码,直到条件不再满足时,则继续向下运行。

二,我们为什么需要循环?

我们的程序在有的时候需要做一些重复的指令或动作,然而这些重复的指令或动作如果让程序员一条条写出来是那将是不现实的,面对这种情况就需要我们的循环结构,以便于程序员将实现方案进行简单化。

1.1 while循环  

while循环是C语言中最基本的循环结构体之一,它的用法很简单,就是包含关键词及循环条件。

当循环条件成立时进行循环,条件不成立时跳出循环,注意的是条件有时不是一成不变的,而且while没有头文件。

例子: 

int main()
{
 int arr = 0;
    while(arr < 5)
    {
      arr++;
    }
    return 0;
}

 解释:我们的括号里一般是写循环条件的,也有把条件写成运算的形式,那么这样久做了两件事,一个是进行运算,一个是进行了条件判断。像这个arr++是一个运算代码快,arr<5时会一直执行arr++的运算,在arr++运算的过程中arr在改变,所以当arr等于5时跳出循环。while循环了五次。

注意请不要把while写成死循环。

 流程图分析:

 1.2 do{...}while循环

 do{...}while循环它与while差不多, do{...}while循环它总比while多一次,它会先进行一次代码快的运行,再判断条件。所以do{...}while至少会将代码块执行一次。当然如果控制表达式的值为 true,那么另一次循环就会继续;如果是 false,则循环结束。

对比示范:


int main()
{
	int i = 1;//初始化
	do
	{
		printf("%d ", i);
		i = i + 1;//调整部分
	} while (i  == 0);//判断条件
	
	return 0;

这段代码如果只是while的判断条件的话,它根本就不会执行,因为i永远不会等于0,然而如果是do{...}while循环的话,就会执行一次,这里就会执行printf及i = i + 1。

1.3 for循环

for也是C语言中最基本的循环结构体之一,甚至它比while循环还要用得多,它的理解也是比较简单的。

for(初始化表达式;条件表达式;循环变量变化表达式){

        //循环体

    }

for循环的括号里一定有两个;;,即使它们的语句是空的。初始化表达式 可以在括号里定义,也可以在括号外面定义,但初始化表达式要赋值。条件表达式可写可不写,不写就是死循环,一般没什么意义。循环变量变化表达式可以写在括号里也可以写在大括号的循环体中,这取决于你自己

我们看一个:


int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", i);
	}
	return 0;

printf循环10次。

三,什么是分支?

分支就是有很多选择,比如如果....那么......或者如果......如果......如果.....那么......的多条件判断。是一种逻辑的分析。

四,我们为什么需要分支?

在现实中我们有很多的选择,对不同的选择有不同的应对方法,换算到计算机上就是有不同的分支,在不同的分支里执行不同的代码块。

2.1 switch分支

switch分支是C语音分支中二大分支之一,相较于if分支它用起来就比较简化,当它支持很多的选择时,他会比if更具有可读性。

int main()
{
    int day = 3;
    switch(day)
    {
         case 1 :
        printf("星期一\n");
        break;
         case 2 :
        printf("星期2\n");
        break;
         case 3 :
        printf("星期3\n");
        break;
         case 4 :
        printf("星期4\n");
        break;
         case 5 :
        printf("星期5\n");
        break;
         case 6:
        printf("星期6\n");
        break;
         case 8 :
        printf("星期7\n");
        break;
        default:
        printf("we");
        break;
    }
    return 0;
}

解释:这里是用1到8来选择printf的打印,它的括号里的表达式是一个具体的变量,case是Switch的一部分,表示不同的选择,它后面的值一定是具体的值,不可以是变量,不可以是字符串,要判断字符串要用if;default也是switch的一部分,但它可以省略,同时它也可以放在任意一个case的后面。

2.2 if分支

if分支是C语音分支中二大分支之一,它比switch用得多,if可以单独写,也可以配合else写。if相当于如果,else相当那么,当然if == else if ,else if 可以多次写。

比如:

		int grade = 88;
		if(grade>100 || grade<0){
			 printf("请输入合理成绩!");
		}
		else if(grade==100){
			 printf("恭喜你100分");
		}
		else if(grade>80 && grade<=90){
			 printf("您的成绩为"+grade+"");
		}
		else if(grade>=60 && grade<=80){
		     printf("您的成绩为"+grade+"");
		}
		else{
			 printf("对不起您成绩太差");
		}
	

括号里是判断条件。

五,break和continue的作用

1.break用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环。

break只能在循环体内和switch语句体内使用。

当break出现在循环体中的switch语句体内时,,起作用只是跳出该switch语句体并不能终止循环体的执行。如果switch case 语句体内没有break,它会从case 指定值开始每个的都运行到

2.continue语句的作用是跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定可以理解为只是中止(跳过)本次循环,接着开始下一次循环。continue语句并没有使整个循环终止。


家人们,来都来了,动动你们发财的小手,给我点点关注,点点赞呗,你们的支持就是我创作的动力,我会持续发布高质量的文章供大家一起学习。

欢迎一起学习交流,批评指正。