C语言——分支语句 and 循环语句2

简介: C语言——分支语句 and 循环语句

这串代码输出的结果是什么呢?

d608a4c793fb4fadbc2b7d17d689ddab.png

很显然他只输出了1-4

总结:

break在while循环中的作用:

其实在循环中只要遇到break,就停止后期的所有循环,直接终止循环

所以,while中的break是用于永久终止循环的。

continue介绍

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

这串代码又会输出什么呢?

2a82f4e386104e66970f4a96bbe4a796.png

我们会发现程序到这里就崩掉了,崩掉的原因是什么呢?

我们来看看这串代码:

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

运行结果>

4ef1dfa51c9b43b09ceb93388a79c076.png

总结:

continue在while循环中的作用就是:

continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,

而是直接跳转到while语句的判断部分。进行下一次循环的入口判断


3.2for循环

我们已经知道了while循环,但是我么为什么还要一个for循环呢?

首先来看看for循环的语法:

3.2.1语法

for(表达式1;表达式2;表达式3)
  循环语句;


表达式1

表达式1为初始化部分,用于初始换循环变量的。

表达式2 **
表达式2为
条件判断部分**,用于判断循什么时候终止。

表达式3

表达式3为调整部分,用于循环条件的调整。

实际应用

使用for循环 在屏幕上打印1-10的数字。

#include <stdio.h>
int main()
{
int i = 0;
//for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}



25b555a1e6334116adef5a40ccdfcb44.png

3.2.1break和continue在for循环中

for循环中的break 和continue和while循环中的意义是一样的

但还是有点点差异:

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


a6f34c2f37e543d3bb1c7e7dc2ae9f02.png


int main()
{
  int i = 0;
  for (i = 1; i <= 10; i++)
  {
    if (i == 5)
      continue;
    printf("%d ", i);
  }
  return 0;
}

5458390c5b384307a3c1b873f4ba3da8.png

3.3do…while()循环

3.3.1do语句的语法:

do
循环语句;
while(表达式);

3.3.2执行流程

981f8d97d8a14fdb9b505ca8a7665a91.png

3.3.3do语言的特点

循环至少执行一次,使用的场景悠闲,所以不是经常使用。

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


f6d1d958dc43460693fd54b32bdc5777.png


3.3.4do while循环中的break和continue

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


这里就不做演示了效果与上面相同

4.go to语句

C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。

从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。

但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过

程。

例如:一次跳出两层或多层循环。

多层循环这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。

goto语言真正适合的场景如下:


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

下面是使用goto语句的一个例子,然后使用循环的实现方式替换goto语句:

一个关机程序

#include <stdio.h>
int main()
{
  char input[10] = { 0 };
  system("shutdown -s -t 60");
again:
  printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
  scanf("%s", input);
  if (0 == strcmp(input, "我是猪"))
  {
    system("shutdown -a");
  }
  else
  {
    goto again;
  }
  return 0;
}



相关文章
|
10天前
|
C语言
【C语言基础】:分支与循环
【C语言基础】:分支与循环
|
3天前
|
C语言
C语言---正方形图案--循环
C语言---正方形图案--循环
|
3天前
|
C语言
C语言----循环---n的k次方
C语言----循环---n的k次方
|
3天前
|
C语言
C语言---循环迭代的方式求第n个斐波那契数
C语言---循环迭代的方式求第n个斐波那契数
|
3天前
|
C语言
C语言---循环迭代---n的阶乘
C语言---循环迭代---n的阶乘
|
3天前
|
C语言
C语言-----分支和循环
C语言-----分支和循环
34 0
|
18天前
|
C语言
c语言循环题目
c语言循环题目
|
19天前
|
C语言
C语言控制流程详解:分支与循环语句
C语言控制流程详解:分支与循环语句
12 0
|
C语言
《C语言及程序设计》实践项目——三种循环语句
返回:贺老师课程教学链接  【项目1:利用循环求和】求1000以内所有偶数的和要求:请编出3个程序来,分别用三种循环语句完成,注意体会各种循环语句的执行过程及语法特点。[参考解答]【项目2:求阶乘】输入n,求 n! 并输出[参考解答] 【项目3:输出这样的整数】输出1000以内能被3整除且个位数为6的所有整数。请在下面代码的基础上完成程序: #include &lt;stdio.h&gt; i
992 0
|
3天前
|
C语言
C语言---函数----实现函数判断year是不是润年
C语言---函数----实现函数判断year是不是润年