分支循环语句来源于生活,判断语句if...else,swhich,包括循环语句while、do while、for语句都是来源于生活的灵感比如:我们要面临选择,我们该怎么选择呢?又或者我们每天都在重复做的事情等等,语法是如此美妙,三种循环语句我们又该如何选择呢?让我们一起看看吧。
1.if...else判断语句
1.1 if语句
1.1.1 if语句语法形式如下:
if(表达式){
语句;
}
表达式成立执行大括号内语句,若不成立,则大括号内语句不执行,真为1,假为0;
1.1.2 例子:
#include <stdio.h>
int main(){
int a=3; //定义整形a初始化为3
if(a==1) //if条件为a=1
printf("hehe\n"); //输出打印 hehe
return 0;
}
上述程序中if语句中的条件不成立,(if表示如果)则if下面的语句不执行(表达式语句为假 也表示0),程序运行后,不会打印“hehe”,如果if条件成立,程序运行后会打印“hehe”。
1.2 if...else...语句
1.2.1 if...else...语句形式如下:
if(条件)
语句1;
else
语句2;
程序中if中后面还有else,表示如果if(条件)成立执行语句1,否则else(if中条件不成立),则执行else后面的语句2。
例子1.2.2:
#include <stdio.h>
int main(){
int a=6; //定义整形int型a初始化为6
if(a==1) //if如果(条件为a==1)
printf("heihie\n"); //输出打印heihei
else //else(否则) if条件不成立,执行else后面的语句
printf("haha\n"); //输出打印haha
return 0;
}
上述例子1.2.2使用了if...else...判断,表示if中的条件不成立时执行else的语句。程序中已经定义a 为整形并初始化为6,但if里面的条件为a==1,这时条件不成立,执行else的语句,所以这个例子中会打印haha,而不是heihei。
小知识:当使用if或if...else语法时语句时,if或else下只有一条语句可以不加大括号”{}”,若有两条语句以上时需要加大括号{},否则if语句条件成立只会执行if下面的一条语句,else也会执行它下面的一条语句,可能导致程序最后输出错误。
2.switch分支语句
switch语句是和if...else...意思很相似,用于可判断多个条件然后执行的语句,若有很多中情况我们可以使用switch语句使可读更高。
switch语句形式如下:
switch(不同的值){
case 0:
语句1;
case 1:
语句2;
default:
语句3;
}
switch括号内是根据表达式计算出不同的值,知道这个值后会执行相应的case分支后的语句,例子:如果switch中括号内最后算出来那个值为1,则执行case 1,也就是下面的语句2;case可写多个,case后跟上不同情况的值就好;default表示找不到相应的值(其他)则执行default后的语句(语句3)。
例子2.1
#include <stdio.h>
int main()
{
int n = 0; //定义整形int n初始化为0
int a=5; //定义整形int a初始化为5
n+=a; //n=n+a
switch(n-3) //switch中n-3算出的值,执行下列相应的case语句
{
case 0: //值为0时
printf("hehe\n"); //输出打印hehe
break; //跳出switch
case 1: //值为1时
printf("heihei\n"); //输出打印heihei
break; //跳出switch
case 2: //值为2时
printf("haha\n"); //输出打印haha
break; //跳出switch
default: //其他
printf("xixi\n"); //输出打印xixi
}
return 0;
}
上述程序中switch中的值为n-3,值为2,则执行case 2中的语句,又由于case 2后面还有break,表示跳出,不会执行其他case 语句。
小知识:1.case和后面的数字之间必须有空格;
2.switch括号中的值必须为整数;
3.每个case中不加break会执行case 数字 后面的语句,比如看例子2.1中的程序,当switch括号的值为0,不仅会执行case 0,还会执行case 1,case 2,包括default中的语句,所以,一定要看情况使用break,否则并不会输出我们想要的结果。
3.while和do...while循环
3.1.while循环是c语言循环语句中的一种。
while循环形式如下:
while(表达式)
语句;
while表达式是循环的条件,当条件成立为真时执行下列语句。
例子 3.1.1
#include <stdio.h>
int main(){
int i=0; //定义int整形i初始化为0
while(i<=5) // while循环条件为i<=5
{
printf("haha"); //输出打印haha
i++; //i自增1
}
return 0;
}
上述程序中定义整形i=0,while条件为i<=5,条件成立(为真)则执行while中的语句,输出打印haha,同时i也会自增1(i++),当while条件不成立时(为假)则不会进入while语句中,如例子3.1.1中while条件成立,i自增1(i++),当i自增到6时(i=6),循环条件不成立则不会执行while中的语句了,退出循环,也就是最终执行结果为打印6次haha,结束程序。
3.2 do...while循环
do...while和while相似,它在循环语句中使用较少。
3.2.1do...while语法形式:
do
语句;
while(表达式);
do...while和while非常相似,他俩在执行程序有一点小小的差异, do...while它会不看while中的条件先执行一次,然后在看while中的条件是否成立在进行循环。
例子3.2.2:
#include <stdio.h>
int main()
{
int i = 0; //定义整形inti初始化为0
do
{
printf("xixi"); //输出打印xixi
i++; //i自增1
}while(i<=10); //while条件为i<=10;
return 0;
}
上述例子3.2.2程序中定义整形i=0,do...while会先不看while中的条件执行一次,然后(简单来说结就是第二次到最后一次循环都要判断条件是否成立,才执行do...while中的语句)while条件为i<=10,条件成立(为真)则执行while中的语句,输出打印xixi,同时i也会自增1(i++),当while条件不成立时(为假)则不会进入while语句中,如例子3.2.2中while条件成立,i自增1(i++),当i=11时,条件不成立则不会执行while中的语句了,也就是最终执行结果为打印11次xixi,结束程序。
小知识:1.do...while会先执行while中的语句一次,然后在后面的循环中(从第二次到最后一次)会先判断循环条件是否成立在执行do...while中的语句。
4.for循环
for循环是c语言中使用最多的,也是一种很好理解的一种循环语法。
for循环语法为:
for(初始化;循环条件;循环变量调整)
语句;
for执行流程为:1.初始化;2.判断循环条件(条件若成立);3.执行for下的语句;4.循环变量的调整;然后往复循环。
例子4.1
#include <stdio.h>
int main()
{
int i = 0; //定义整形inti初始化为0
for(i=1; i<=5; i++) //for循环变量初始化为1;循环条件为i<=5;i自增1
{
printf("haha\n"); //输出打印haha
}
return 0;
}
上述程序中使用了for循环语句,执行顺序为:1.for初始化变量i=1,2.然后判断循环条件是否成立(i<=5),3.若成立,执行for中的语句:输出打印haha,最后i自增1(i++);这就是第一次循环的过程。当这个程序循环到i自增(i++)为6时(i=6),循环条件不成立,跳出循环语句,则这个程序最后结果会打印输出5次haha。
小知识:for的语句只有一条时可不需要加大括号{},若有两条以上时,则需加上大括号,否则,循环结束后的结果不是我们想要的结果。
5.break和contiune怎么使用?
break和contiune是使用在循环语句中。比如while,do...while,for循环语句中,它俩有什么区别呢?我用简洁话总结:
5.1 break
break结束整个循环;
5.2 contiune
contiune结束本次循环(contiune后面的语句不执行),执行下次循环。
5.3 什么时候使用break和contiune
根据具体程序题意需求来合理使用break和contiune。
6.新手小白如何选择循环语句?
c语言三种循环语句,分别是while,do...while,for;这三种我们该如何选择呢?
1.先熟悉理解并掌握三种循环语句,反复练习,温故而知新。
2.根据题型选择合适的循环语句,因为程序设计有很多种设计方式
3.选择自己喜欢和熟悉的循环语句。