【C语言】分支与循环语句(基础知识)

C语言当中所有的结构分三种,分别是:顺序结构,选择结构,循环结构。

顺序结构就是从前往后,从上到下,我们的写好的程序就是按顺序编译。

选择结构是面对同一个问题时,有不同的选择,选择其一。

循环结构是指程序去到某一处的地方,不断地循环往复执行。

图示:

45a701ce3e02478a98a3ead390d030b3.png

在C语言中,分支语句有if语句switch语句;循环语句有while语句for语句do while 语句;还有非常特别的goto语句。

分支语句

1. if - else 语句

if - else 语句是分支语句的一种,也是我们选择结构必须掌握的语句。if - else 语句又分为单 if 语句、if - else 双分支语句、if - else if - else多分支语句。

1.1 if 语句

if 语句的语法形式如下:

1.if(表达式)
2.   语句

表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏。在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果是 不是0,则语句执⾏。

例如:

1 #include<stdio.h>
2 int main()
3 {
4 	 int age = 19;
5	 if (age > 18)
6	     printf("成年\n");
7	 return 0;
8 }

代码分析:由于age=19,19>18,if后()里的条件判断为真,所以执行语句printf(“成年\n”);

1.2 if - else 语句

if - else 语句就是非if即else。

if - else 语句的语法形式式如下:

1  if(表达式)
2     语句1
3  else
4    语句2

例子:输⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印数偶数。

1  #include <stdio.h>
2  int main()
3  {
4     int num = 0;
5     scanf("%d", &num);
6     if(num % 2 == 1)
7     printf("%d 是奇数\n", num);
8     else
9     printf("%d 是偶数\n", num);
10    return 0;
11 }

1.3 if - else 多分支语句

if - else 多分支语句的语法形式式如下:

1  if(表达式1)
2  {
3     语句1;
4  }
5  else if(表达式2)
6  {
7     语句2;
8  }
9  …
10 else if(表达式n)
11 {
12    语句n;
13 }
14 else
15 {
16    语句n+1;
17 }

例子:

1 #include <stdio.h>
2 int main()
3 {
4  int age = 0;
5  scanf("%d", &age);
6  if(age<18)
7  {
8  printf("少年\n");
9  }
10 else
11 {
12 if(age<=44)
13 {
14 printf("⻘年\n");
15 }
16 else
17 {
18 if(age<=59)
19 {
20 printf("中⽼年\n");
21 }
22 else
23 {
24 if(age<=90)
25 printf("⽼年\n");
26 else
27 printf("⽼寿星\n");
28 }
29 }
30 }
31 return 0;
32 }

循环语句

1.1 while循环语句

1 while(表达式)
2 {
3        语句;
4 }

实例:输⼊⼀个正的整数,逆序打印这个整数的每⼀位

1 #include <stdio.h>
2 int main()
3 {
4  int n = 0;
5  scanf("%d", &n);
6  while(n)
7  {
8  printf("%d ", n%10);
9  n /= 10;
10 }
11 return 0;
12 }

1.2 for 循环

for 循环的语法形式如下:

1 for(表达式1; 表达式2; 表达式3)
2        语句;
3  //表达式1 ⽤于循环变量的初始化
4  //表达式2 ⽤于循环结束条件的判断
5  //表达式3 ⽤于循环变量的调整

实例:在屏幕上打印1~10的值

1    #include <stdio.h>
2    int main()
3    {
4     int i = 0;
5     for(i=1; i<=10; i++)
6     {
7     printf("%d ", i);
8     }
9 
10    return 0;
11   }

while循环和for循环的对⽐:for 和 while 在实现循环的过程中都有初始化、判断、调整这三个部分,但是 for 循环的三个部 分⾮常集中,便于代码的维护,⽽如果代码较多的时候 while 循环的三个部分就⽐较分散,所以从形 式上 for 循环要更优⼀些。

1.3 do-while 循环

在循环语句中 do while 语句的使⽤最少,它的语法如下:

1 do
2  语句;
3 while(表达式);

在 do while 循环中先执⾏图上的“语句”,执⾏完语句,在去执⾏“判断表达式”,判断表达式的 结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。 所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。

实例:

1  #include <stdio.h>
2  int main()
3  {
4   int i = 1;
5   do
6   {
7   printf("%d ", i);
8   i = i + 1;
9   }while(i<=10);
10 
11  return 0;
12 }

break和continue语句

在循环执⾏的过程中,如果某些状况发⽣的时候,需要提前终⽌循环,这是⾮常常⻅的现象。C语⾔中 提供了 break 和 continue 两个关键字,就是应该到循环中的。

• break 的作⽤是⽤于永久的终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执 ⾏。

• continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所 差异的。

break举例

1  #include <stdio.h>
2  int main()
3  {
4   int i = 1;
5   while(i<=10)
6   {
7   if(i == 5)
8   break;//当i等于5后,就执⾏break,循环就终⽌了
9   printf("%d ", i);
10  i = i+1;
11  }
12  return 0;
13 }

 执⾏的结果:

426506505cfb474a8d32a3c1a8768017.png

打印了1,2,3,4后,当i等于5的时候,循环正 break 的地⽅终⽌,不再打印,不再循环。 所以 break 的作⽤就是永久的终⽌循环,只要 break 被执⾏, break 外的第⼀层循环就终⽌了。 那以后我们在循环中,想在某种条件下终⽌循环,则可以使⽤ break 来完成我们想要的效果。 

1  #include <stdio.h>
2  int main()
3  {
4   int i = 1;
5   while(i<=10)
6   {
7   if(i == 5)
8   continue;
9   //当i等于5后,就执⾏continue,直接跳过continue的代码,去循环的判断的地⽅
10  //因为这⾥跳过了i = i+1,所以i⼀直为5,程序陷⼊和死循环
11  printf("%d ", i);
12  i = i+1;
13  }
14  return 0;
15 }

到这⾥我们就能分析出来, continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接 到循环的判断部分,进⾏下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成 死循环。


 

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贺仔仔在努力!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值