文转码 C语言学习记录day 7 switch语句、while循环

本文详细介绍了C语言中的switch语句和while循环。对于switch语句,讲解了break的重要作用以及如何利用default处理未匹配的情况。强调了在编程中养成良好习惯的重要性,如在case末尾添加break,并在switch语句中包含default子句。同时,对while循环进行了阐述,包括其结构和在循环中的break和continue关键字的应用。
摘要由CSDN通过智能技术生成

switch语句

switch语句也是一种分支语句。常常用于多分支的情况。

比如:

输入1,输出星期一;输入2,输出星期二……输入7,输出星期日

格式:

     switch (整型表达式)

     {

         语句项;

     }

而语句项是什么呢?

     //是一些case语句:

     //如下:

case 整型常量表达式:

     语句;

在switch语句中的break

在switch语句中,我们没法直接实现分支,搭配break使用才能实现真正的分支。

比如:

int main()

{

     int day = 0;

     scanf("%d", &day);

     switch (day) //switch判断括号内结果为几,是几就从对应的case入口进去

     {

     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;

}

有时候我们的需求变了,如输入1-5输出工作日,输入6-7输出休息日,那么我们的代码就应该这样实现:

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;

}

break语句的实际效果是把语句列表划分为不同的部分。

编程好习惯:

在最后一个case语句的后面加上一条break语句。(之所以这么些是可以避免出现在以前的最后一个case语句后面忘了添加break语句)。

default子句

如果表达的值与所有的case标签的值都不匹配怎么办?

其实也没什么,结构就是所有的语句都被跳过而已。

程序并不会终止,也不会报错,因为这种情况在C中并不认为适合错误。

但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?

你可以在语句列表中增加一条default子句,把下面的标签

default:

写在任何一个case标签可以出现的位置。

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

所以,每个switch语句中只能出现一条default子句。

但是它可以出现在语句列表的任何位置,而且语句流会像贯穿一个case标签一样贯穿default子句。

编程好习惯

在每个switch语句中都放一条default子句是个好习惯,甚至可以在后面再加一个break。

循环语句

  • while
  • for
  • do while

while循环

我们已经掌握了,if语句:

     if (条件)

         语句;

当条件满足的情况下,if语句后的语句执行,否则不执行。但是这个语句只会执行一次。

但我们生活中很多实际例子时:同一件事我们需要完成很多次。

那我们怎么做呢?C语言中给我们引入了:while语句,可以实现循环。

//while 语法结构

     while (表达式)

         循环语句;

expr:表达式;stmt:statement,语句

例:

int main()

{

     int i = 1;

     while (i <= 10)

     {

         if (i == 5)

              //break;//这里i==5的时候不打印,跳出了这个循环,但是i确实是5

              continue;//continue是跳过本次循环后面的代码,继续循环下一次,i一直等于5,一直continue

         printf("%d ", i);

         i++;

     }

     return 0;

}

总结:

break在while循环中的作用:在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。所以:while中的break是用于永久中止循环的。

continue的作用:用于终止本次循环,本次循环中continue后面的代码不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。

分析下列代码(分析已注释在代码中)

int main()
{
	int ch = 0;
	//EOF - end of file,文件结束标志,值是-1
	while ((ch = getchar()) != EOF)//getchar,接收键盘输入的一个字符
	{
		putchar(ch);//putchar,输出
	}
	return 0;
}
//这个循环只有接收到输入EOF才会停止
//注意,并不是直接输入EOF就可以停止代码
//EOF程序会读取三次,第一次读取E第二次读取O第三次读取F
//键盘ctrl+z才是正确的中止代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值