C语言分支循环语句(if...else,switch,while,do while,for语句)

      分支循环语句来源于生活,判断语句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=0do...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怎么使用?

breakcontiune是使用在循环语句中。比如while,do...while,for循环语句中,它俩有什么区别呢?我用简洁话总结

5.1 break

  break结束整个循环

5.2 contiune

  contiune结束本次循环(contiune后面的语句不执行)执行下次循环。

5.3 什么时候使用breakcontiune

    根据具体程序题意需求来合理使用breakcontiune。

6.新手小白如何选择循环语句?

c语言三种循环语句,分别是while,do...while,for;这三种我们该如何选择呢?

     1.先熟悉理解并掌握三种循环语句,反复练习,温故而知新。

     2.根据题型选择合适的循环语句,因为程序设计有很多种设计方式

     3.选择自己喜欢和熟悉的循环语句。

    

  • 33
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值