分支和循环语句

分支和循环语句

点击此处可看简单的一些题目[题目演示](https://blog.csdn.net/wang_yiduo/article/details/87018901)

  • 分支语句

    -if语句

     语法结构:
           if(表达式)
           语句;
    
            if(表达式)
                语句1;
            else
                语句2;
    
     		//多分支
     		if(表达式1)
     			 语句1;
     		else if(表达式2)
     			 语句2;
     		else
     			 语句3;
    

    解释一下:如果表达式的结果为真,则执行语句1,否则执行表达式2.
    在C语言中0表示假,非0表示真.

    代码块格式:

     #include<stdio.h>
     int main()
     {
     	if(表达式)
     	{
     		语句列表1;
     	}
     	else
     	{
     	语句列表2;
     	}
     	return 0;
     }        
    

    这里一对{ }就是一个代码块

    代码演示:

     #include<stdio.h>
     int main()
     {
     	int a=1;
     	int b=2;
     	if(a==1)
     	{
     		if(b==2)
     				printf("hello,world\n");
     	}
     	else
     	{
     		printf("goodbye,world\n");
     	}
     }
    

    这就是一个最基本的if语句,在这段代码中第一个if语句里面有两个语句所以必须用{}将他们括起来,第二个 if语句只里面只有一个语句所以可以不用{}括起来,但是对于初学者来说,在任何情况下都尽量不要省略{},因为有可能在无意之间造成悬空else.

    悬空else:

     #include<stdio.h>
     int main()
      {
     	int a=1;
     	int b=2;
     	if(a==1)
     		if(b==2)
     				printf("hello,world\n");
     	else
     	{
     		printf("goodbye,world\n");
     	}
     }
    

    此时else从属的if语句就发生了逻辑错误,不知道else是和if(a= =1)搭配还是和if(b==2)搭配

    -switch语句(不常用)

    语法结构:
        switch(整形表达式)
        {
         	case 整形常量:
         	语句;
         	break;
         	case......
         	break;
         	.........
        }
    

    在switch语句中,没有办法直接实现分支所以必须搭配 break来使用.
    例如:

    #include<stdio.h>
    int main()
    {
     int day = 1;
     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;
     	}
    

    其中day可以是1~7中的任意一个数字,并且也只能是整型变量,和if语句相比他有很大的局限.
    当然也可以简化一下,将相同输出的语句可以写在一起.
    如:

    #include<stdio.h>
    int main()
    {
    int day = 1;
    switch (day)
    {
      case 1:
     case 2:
     case 3:
     case 4:
     case 5:
     	printf("周五\n");
     	break;
     case 6:
     case 7:
     	printf("周末\n");
     	break;
    }
    
  • 循环语句
    -while循环

    语法结构
    while(表达式)
         循环语句;
    

    代码演示:

    //输出1-10的数字
    #include<stdio.h>
    int main()
    {
       int i = 0;
       while (i < 10)
       {
         printf("%d ", i);
         i = i + 1;
       }
       return 0;
    }
    

    while语句中的breakcontinue
    break代码演示

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

    此时输出的结果为:0 1 2 3 4
    总结: break的作用是终止循环,直接从循环中跳出来.

    continue代码演示:

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

    此时输出结果为:1 2 3 4 6 7 8 9
    总结:continue的作用是终止本次循环,进入到下次循环,也就是说continue之后的语句不再执行,直接跳转到while语句进行下次判断
    break和continue的异同点:
    都是终止循环的语句,但是break比较彻底,直接结束循环,而continue相对较温和一点,只是结束本次循环,并没有完全终止整个循环

    -for循环

    语法结构:
    for(表达式1;表达式2;表达式3)
                      循环语句;
    

    表达式1指的是初始化部分,用于初始化循环变量
    表达式2指的是条件判断部分,用于循环终止
    表达式3调整部分,用于循环条件的调整
    代码演示:

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

    凡是可以用for循环的程序都可以用while循环来替代
    break和continue在for循环中依然适用且效果和在while循环中相同

    -do while循环(不常用)

    语法结构:
    do
          循环语句;
     while(表达式);
    

    特点:先执行后判定,循环至少需要执行一次,有所限制
    代码演示:

     #include<stdio.h>
    int main()
    {	
      int i = 10;
      do
      printf("%d ", i);
      while (i < 10);
      return 0;
    }
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值