一.switch介绍:
1.在C语言中,除了if语句可以实现分支选择结构外,switch也可以实现分支结构。switch语言是一种特殊形式的if……else结构,主要用于判断多个结果的情况。
2.switch的语言形式如下:
#include <stdio.h>
int main()
{
switch (expression)
case value1:statement
case value2:statement
default:statement
return 0;
}
根据表达式expression不同的值,执行相应的case分支,如果找不到对应的值,就执行default分支。
注:switch后面的expression必须是整形表达式,case后面的值,必须是整形常量表达式。字符也可以,因为字符是以ASCII值进行存储的,是整数类型。
一:if语句和switch语句的对比:
1.数据类型不同:
在if语句中数据类型可以是布尔类型、可以是大于0的整数判断为true,也可以是小于0的整数判断为false、可以是常量、枚举。
而在switch语句的括号中,数据类型必须是整型或者是字符类型。
2.语句结构不同:
在if语句中,常用到的是else、if……else,通常两种情况时,选用else,但如果有两种以上的多种情况,通常选用if……else语法结构。
在switch语句中,常用到的是case(它表示的是情况,与表达式中的值相匹配,他给的值一般是常量,不能是变量)、default(它表示case所有情况不符合)、break(表示中断结束的意思,跳出switch语句)。
3. 应用场景不同:
if建议在判断区间或者范围的时候使用,switch建议在判断固定值的时候使用,但一般可以使用switch的场景都可以使用if,反之不一定成立。
4.返回途径不同:
if是根据条件判断后再进行处理,通常条件表达式必须是一个返回布尔结果的表达式,条件返回值是true则继续进行下面的语句,如果条件返回值是false,则执行相对应的语句。
switch根据表达式的值来执行多个操作中的一个。
二.break、case、defalut介绍:
一.break具体使用:
#include <stdio.h>
int main()
{
int day =0;
scanf("%d",&day);
switch(day)
{
case1:
printf("星期一\n");
case2:
printf("星期二\n");
case3:
printf("星期三\n");
case4;
printf("星期四\n");
default;
printf("休息\n");
return 0;
}
大家可以猜猜在这段代码中,如果不使用break运行的结果是什么?
那么为什么输入3后输出的有四个结果?那是因为输入3后,找到对应的情况进去,然后一直从case3执行到default,中间没有被打断,所以当我们只想要一个输出结果时,可以使用break加在后面,使其只输出一个结果。
二.case具体使用:
上述代码中,我们需要注意的是case和后面的数字之间必须有空格,每一个case语句中的代码执行完成后,需要加上break才能跳出这个语句。,而且case后面只能使用常量表达式,case后面的值不能重复使用。
三.default具体使用:
在switch语句中,case句子和default句子没有顺序要求,只要我们写出的代码可以正常运行就行,不过我们一般都是把default放在句子后面处理的。
三.while介绍:
一.while基本知识:
1.C语言中提供了三种循环语句,分别是:while、for、do……while。while就是其中的一种.
2.while的语法形式如下:
#include <stdio.h>
int main()
{
while(表达式)
语句;
return 0;
}
其中表达式的结果为真即非0的时候,继续进行循环语句,否则停止。
3.while循环语句中,一般还会使用到break、continue、if的嵌套等使用。
注:while循环的特点是先判断条件表达式,后执行循环语句。循环体如果包括一个以上的语句,应该用花括号括起来,作为复合语句出现。
二.while中的break和continue区别:
在while循环中,break表示永远终止循环,而continue是终止本次循环,也就是只是continue后面的代码不再执行,而是直接跳到while的判断部分,进行下一次循环入口的判断。
例如:
注意:在有continue中,1234后面是死循环,有光标闪,而在break语句中只打印1234,然后就跳出了循环。
下面是while循环时的流程图:
四.for语句介绍:
一.for语句基本:
C语言中的for语句也是来循环的 ,重复循环某段代码。它由三部分组成:初始表达式部分、判断部分和调整部分。在每次循环时,都会进行初始化表达式部分,然后进入判断部分,判断条件部分是否为真,如果为真则继续执行循环部分代码。除此之外,for语句还可以嵌套使用 ,用于多重循环。
for循环的语法形式如下:
for(表达式1;表达式2;表达式3)
其中,表达式1用来循环变量的初始化,表达式2用于循环结束条件的判断,表达式3用于循环变量的调整。,而且for语句中的初始化部分、判断部分和调整部分可以省略。
举例子:在for语句中有无初始化的区别。
对比以上两个代码,为什么会差异如此大呢?首先在第一个代码中,for语句循环体中没有对j进行初始化,所以在第一次进入后 打印出4个hehe,然后i++<4,但是由于第二次再进入时没有对j初始化,(j=4)<4,所以循环不再进行。而第二个代码在for语句循环中开始就对j进行了初始化,所以第二次进入循环体时,满足j<4,继续打印4个hehe,直到满足i<4.
二.while和for语句的对比:
C语言中,while和for都是常用的循环语句,他们的作用就是重复使用一段代码,但是在语法和语句上有一定的区别:
1.循环语法结构不同:for具有三个固定的语法结构,初始化部分、判断部分、更新表达式部分,而while只有一个循环条件部分。
2.循环条件判断时间不同:while的循环,条件判断部分是在一开始部分,而for是先进入初始化部分,然后再进入判断部分进行 判断,for循环适用于已知循环次数的情况,而while循环适用于未知循环次数的情况。
五.do while介绍:
1.C语言中的do while语句是一种出口条件循环,它的语法结构为:do{循环体语句}while(循环条件表达式)。在执行do while语句时,先执行一次循环体语句,然后再判断循环条件表达式是否成立,如果成立,则继续执行循环体语句,否则跳出循环。因此,do while语句保证了循环体至少被执行一次。与while和for循环不同,do while循环的循环条件表达式在循环体执行之后才被判断,因此do while循环适用于需要先执行一次循环体语句的情况。
2.do while的语法结构如下:
do
循环语句;
while(表达式)
//至少循环一次
3.do while一般使用场景较少,循环体三种语法常用的是for、while,然后是do while。