分支语句与循环语句,详细讲解

简介: 分支语句与循环语句,详细讲解

一、分支语句(选择语句)

1.if-else 语句:

~ if-else的故事很长,待我慢慢道来哈~

1)基本语法结构:

> if(表达式)
>         语句1;
> else
>        语句2;

其中,表达式起到判断作用,若表达式为真,则执行语句1;若表达式为假,则执行语句2;(C语言中 0表示假,非0表示真)


2)多分支结构

> if(表达式1)
>        语句1;
> else if(表达式2)
>        语句2;
> ...       
> else if(表达式n-1)
>        语句n-1;
> else  
>        语句n;
  • 以上两种语法十分简单,一个判断,一个语句,但大多数情况下,我们并不是一对一的,而是一对多,一个判断,要执行很多语句,那该怎么办呢?嘻嘻,莫慌,我来告诉你!


引入代码块,也就是 ‘{}’ 大括号咯,将多条语句框起来,便可以实现一判断,多语句执行咯。合理的利用 ‘{}’ 也可以使我们的代码颜值加分哦!


  • 为了梦想,加大难度!!!


3)嵌套if语句:

if(表达式1)
{
      if(表达式2)
        语句1;
      else 
        语句2;
}
else//这里面的else跟那个if匹配呢?
{
      if(表达式3)
         语句3;
      else
         语句4;
}

注: else与if的匹配准则:else与最靠近它的并且没有与别的else匹配过的if相匹配。

嵌套的语法很容易出现错误,所以一定要注意代码习惯的养成,让自己的代码逻辑清晰。好吧,if-else暂时结束喽,so让我们一起去学习分支同伴Switch吧!


2.switch语句:

Switch语句也是分支语句,常常用于多分支的情况。话不多说,先看格式。

1)基本语法结构

switch(表达式){
    case 常量表达式1: 语句1; break;
    case 常量表达式2: 语句2; break;
                  ...
    case 常量表达式n-1: 语句n-1; break;
    case 常量表达式n: 语句n; break;
    default:           语句n+1; break;
}

如上面基本语法结构表示,首先求解表达式,如果所得的结果与下列常量表达式结果相同,则执行该常量表达式后面的语句;但若求解表达式与下面的所有常量表达式都不想同,那么便跳转并执行default后面的语句。最后通过break来跳出Switch语句。嘻嘻,想必大家一看就会了吧~


好,接下来让我们来变形一下下吧。

2)Switch变形:

switch(表达式){
    case 常量表达式1: 
    case 常量表达式2: 
        语句 1; 
        break;
    case 常量表达式3: 
    case 常量表达式4:
        语句 2;
        break;
    default: 
        语句 3;
        break;         
}

如果我们想要表达式的多个结果都可以输出同一个语句,上面表达式便可以实现。比如 我想说age = 15,16,17,都表示未成年便可以通过这个变形实现。

Switch语句的分支效果是通过break来实现的,所以要合理运用break哈。


补充下:Switch表达式中只能是整形和枚举类型哦

二、循环语句:

1、while语句

1)基本语法:

while (表达式)
{
循环语句;
}

举个栗子吧

  • 来求个1~n项的和吧
#include<stdio.h>
int main()
{
   int i = 1;
   int sum = 0;
   int n = 0;
   scanf("%d",&n);
   while(i<=n)
  {
   sum += i ;
   i++;
  }
  printf("%d",sum);
 
   return 0;
}

~~while的英语意思是当…时。在c中,也可以这样理解,当表达式正确时,则执行下方语句。

2)循环中的break、continue语句:

  • break用法:
#include<stdio.h>
int main()
{
   int i = 1;
   int sum = 0;
   int n = 0;
   scanf("%d",&n);
   while(i<=n)
  {
   sum += i ;
   break;//位置1
   i++;
  }
  printf("%d",sum);
 
   return 0;
}

若在位置1处插入一个break,发现运行结果为1;不难推理出while只循环了一次,或者说是只执行了break前面的语句。所以break的作用便是跳出一层循环

  • continue的用法:
#include<stdio.h>
int main()
{
   int i = 1;
   int sum = 0;
   int n = 0;
   scanf("%d",&n);
   while(i<=n)
  {
   sum += i ;
   continue;//位置1
   i++;
  }
  printf("%d",sum);
 
   return 0;
}

若把break换成continue会发生什么呢?我们运行看下;

这里我们就发现只能输入一个5,无法输出结果。为什么呢,那是因为 continue执行后,后方的语句不再执行,直接跳到while循环的判断语句处。  而栗子中,i永远小于n,则该循环是死循环,无法跳出。

好吧,while语句就浅浅讲到这里吧。

2、for语句:

1)基本语法:

for(语句1;表达式;语句2)

{

循环体语句;

}

我们就用for语句来完成上面那个栗子吧

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

这样就可以表达上述的while语句的栗子了,大家看看,是不是更加清楚了。for的基本语法相当于表达式部分就相当于于while里的表达式,其判断真假的作用那个;i++也相当于while中最后一个执行的语句,所以for的执行方式,就很明显了吧。(注意for后括号中以 ‘ ;’ 连接。)


当然break,continue在for语句也可以使用,这里就不过多赘述

3、do-while语句:

1)基本用法:

do{
循环体
}while(表达式);

在do-while中,就是先执行后判断是否循环,与while相反。同样我们也用do-while来完成上面栗子。

#include<stdio.h>
int main()
{
   int i = 1;
   int sum = 0;
   int n = 0;
   
   scanf("%d",&n);
   
   do {
   sum += i ;
   i++;
   }while(i<=n);
  printf("%d",sum);
 
   return 0;
}

基本与while相同,我也就不多说了。

4、goto语句:

~goto 语句可是很有意思,如它英文,go to 真是来去自由啊,简直是C语言中的飞雷神!一起来了解它的用法吧。

//飞雷神,先标记;
flag://(标记)
//发动飞雷神,也就是运行goto;
goto flag;
//这样执行又回到了flag处,实现循环。

当然,我 “飞雷神” 不止如此,在多层循环中,有意想不到的效果,比如:

for(...)
     for(...)
     {
         for(...)
         {
         if(disaster)
            goto error;
         }
     }
     ...
error
 if(disaster)
 //处理错误情况。  

如果在嵌套很深的循环中,break只能一层,一层的往外,而goto,则是一步到位,相当方便。

相关文章
|
1月前
|
算法 Unix 数据安全/隐私保护
分支和循环语句2
分支和循环语句2
40 0
|
1月前
|
缓存 编译器 Go
分支语句和循环语句
分支语句和循环语句
56 0
|
7月前
|
编译器 C语言 C++
分支语句和循环语句上
分支语句和循环语句
40 0
分支语句和循环语句上
|
6月前
|
数据安全/隐私保护 C语言
分支语句与循环语句(2)
分支语句与循环语句(2)
44 0
|
6月前
|
C语言
分支语句和循环语句(1)
分支语句和循环语句(1)
38 0
|
7月前
|
编译器
分支语句与循环语句题
分支语句与循环语句题
47 0
|
7月前
|
缓存 Go 数据安全/隐私保护
分支语句和循环语句下
分支语句和循环语句
57 0
|
7月前
|
算法 数据安全/隐私保护
分支语句与循环语句——练习
分支语句与循环语句——练习
39 0
|
8月前
|
数据安全/隐私保护
【分支语句与循环语句】
【分支语句与循环语句】
35 0
|
10月前
|
C语言
【C】分支和循环语句的简单介绍
什么是语句呢? 在C语言中由分号(;)隔开的就是一条语句。