switch语句,while语句,for循环,do...while()循环,goto语句

1.switch语句(是一种分支语句)

(1)switch语句的语法形式:

switch(整形表达式)
{
      case 整形常量表达式;
              语句;
}
举例:

#include<stdio.h>
int main()
{
    
    
	int day;
	while (scanf_s("%d", &day) != EOF)
	{
    
    
		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;
	}
	}
	return 0;
}

在这里插入图片描述
:整形表达式匹配哪个case,就跳转拿一个

(2)default子句

当switch表达式的值并不匹配所有的case标签的值时,这个default字句后面的语句就会执行
举例:

#include<stdio.h>
int main()
{
    
    
	int day;
	while (scanf_s("%d", &day) != EOF)
	{
    
    
		switch (day)
		{
    
    
		case 1:
		case 2:
		case 3:
		case 4:
		case 5:
			printf("周内\n");
			break;
		case 6:
		case 7:
			printf("周末\n");
			break;
		default:
			printf("输入错误,请重新输入\n");
		}
	}
	return 0;
}

在这里插入图片描述
:1.每个switch语句中只出现一条default子语句;
        2.break语句中断当前循环直接跳出;
举例:

#include<stdio.h>
int main()
{
    
    
	int n = 1;
	int m = 2;
	switch (n)       //n=1直接跳到case 1
	{
    
    
	case 1:          
		m++;         //m++;m=3
	case 2:
		n++;         //n=2
	case 3:
		switch (n)   //n=2直接跳到case2
		{
    
    
		case 1:
			n++;
		case 2:
			m++;      //m=4
			n++;     //n=3
			break;   //此处的break结束的是第二个switch循环
		}
	case 4:    
		m++;          //m=5
		break;        //break终止第一个switch循环
	default:
		break;
	}
	printf("m = %d,n = %d\n", m, n);
	return 0;
}

在这里插入图片描述

2.while语句(可实现循环)

(1)while语法形式

while(表达式) //0是假,非0是真;0不进,非0进
      循环语句;
举例:

#include<stdio.h>
int main()
{
    
    
	int a = 1;
	while (a < 10)
	{
    
    
		printf("%d\n", a);
		a++;
	}
	return 0;
}

在这里插入图片描述

(2)while语句与break

#include<stdio.h>
int main()
{
    
    
	int a = 1;
	while (a < 10)
	{
    
    
		if (a == 5)
		{
    
    
			break;
		}
		printf("%d\n", a);
		a++;
	}
	return 0;
}

在这里插入图片描述
:在while循环中只要遇到break,就停止后期所有的循环,直接终止循环;(while中的break是用于终止循环的)

(3)whlie语句与continue

#include<stdio.h>
int main()
{
    
    
	int a = 1;      
	while (a < 10)    //1
	{
    
    
		if (a == 5)   //2
		{
    
    
			continue;  //3
		}
		printf("%d\n", a);
		a++;
	}
	return 0;
}

在这里插入图片描述
如上代码运行到4后面陷入了死循环当a=5时运行顺序为如上注释1-2-3-1-2-3一直死循环,因为a=5 continue直接回到while继续循环,到不了a++所以a一直等于5,所以陷入死循环

#include<stdio.h>
int main()
{
    
    
	int a = 0;
	while (a < 10)
	{
    
    
		a++;
		if (a == 5)
		{
    
    
			continue;
		}
		printf("%d\n", a);

	}
	return 0;
}

在这里插入图片描述
:continue是用于终止本次循环,本次循环continue后面的代码不会再执行,而是直接跳转到while语句的判断部分;进入下一次循环的入口判断

3.for循环

(1)for循环语法形式

for(表达式1;表达式2;表达式3)
{
          循环语句;
}
表达式1:为初始化部分,用于初始化循环变量;
表达式2:为条件判断部分,用于判断循环时候终止;
表达式3:为调整部分,用于循环条件的调整
举例:

#include<stdio.h>
int main()
{
    
    
	for (int i = 1; i <= 10; i++)
	{
    
    
		printf("%d\n", i);
	}
	return 0;
}

在这里插入图片描述
如上结果用while语句如下

#include<stdio.h>
int main()
{
    
    
	int i = 1;
	while (i <= 10)
	{
    
    
		printf("%d\n", i);
		i++;
	}
	return 0;
}

在这里插入图片描述

(2)for循环和break

#include<stdio.h>
int main()
{
    
    
	int i;
	for (i = 1; i <= 10; i++)
	{
    
    
		if (i == 5)
		{
    
    
			break;
		}
		printf("%d\n", i);
	}
	return 0;
}

在这里插入图片描述
for循环中break和while循环中break意义是一样的

(3)for循环和continue

#include<stdio.h>
int main()
{
    
    
	int i;
	for (i = 1; i <= 10; i++)
	{
    
    
		if (i == 5)
		{
    
    
			continue;
		}
		printf("%d\n", i);
	}
	return 0;
}

在这里插入图片描述
for循环中continue和while循环中continue意义是一样的

(4)for循环的变种

#include<stdio.h>
int main()
{
    
    
	int x = 0, y = 0;
	for (x = 0, y = 0; x < 2 , y < 5; ++x, y++)//逗号表达式判断后面
	{
    
    
		printf("hehe\n");
	}
	return 0;
}

在这里插入图片描述
:逗号表达式的整个返回值取逗号以后的

4.do…while()循环

(1)do…while()语法结构

do
{
      循环语句;
}
while(表达式);
举例:

int main()
{
    
    
	// 至少会执行一次
	int i = 0;
	do
	{
    
    
		if (i == 5)
		{
    
    
			break;
		}

		printf("%d\n", i);
		++i;
	} while (i < 10);
}

在这里插入图片描述
在这里插入图片描述
:break和continue在do…while中的意义和for循环while语句的意义是一样的

5.goto语句

goto 名称;
名称 :
可以实现随意跳转

#include<stdio.h>
int main()
{
    
    
	int a;
	again :
	printf("请输入一个数\n");
	scanf_s("%d",&a);
	printf("这个数的二倍是:%d\n",2 * a);
	goto again;
	return 0;
}

在这里插入图片描述
:由goto 名称;处跳转至名称 :处

猜你喜欢

转载自blog.csdn.net/weixin_50886514/article/details/110388490