【C语言】循环语句 -- while -- for -- do while -- goto语句(一)

简介: 【C语言】循环语句 -- while -- for -- do while -- goto语句(一)

前言

本章主要是讲循环语句:

内容包含while循环、for循环、do while循环、goto语句的详解。

1、while循环

while循环语法

while(表达式) //表达式为真,执行循环语句

循环语句;
Q:使用while循环打印1~10

int main()
{
  int i = 1;//初始化
  while (i <= 10)//判断
  {
    printf("%d ", i);
    i++;//调整
  }
  return 0;
}

这个例子很清晰明了的给我们展示了while循环的语法使用。

接着我们继续了解break和continue在while循环中的使用。

1.1 break在while循环中的使用

Q:看这段代码,它的执行结果是什么呢?

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

运行结果:


我们看到的结果是打印了1~4就截止了。

我们可以得出break在while循环中的作用:

我们看到在判断到i = 5时,就不会再循环了。所以,break在循环中被执行时会直接跳出循环。

1.2 continue在while循环中的使用

Q:看这段代码,它的执行结果是什么呢?

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

运行结果:

我们看到的结果是1~4死循环。

Q:为什么是这样的结果呢

A:这里的 i = 5 之后触发continue,continue跳过了这次循环的后面部分,调整部分的 i++ 被跳了过去,继续循环 i = 5 ,就成了死循环。

所以我们可以得出continue在while循环中的作用

continue在循环中被执行不会跳出循环,只会跳过continue后面的代码,进入到while的判断部分,进入下一次循环。

针对上面的代码,我们进行改进:

Q:改进后的这段代码,它的执行结果是什么呢?

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

运行结果:

我们将调整部分的 i++ 放在continue之前,i 初始化是1,经过判断为真,进入先进行 i++ 得到 2 就打印,循环进行,等 i++ 到 i = 5 时就只会跳过 i == 5 这次循环后面的部分,后面的每一次循环仍然正常运行,i++ 调整完后,i = 6 ,打印出来,i = 7, 8, 9,10,11依次调整打印。

1.3 getchar和putchar详解

getchar -- 读取一个字符

putchar -- 输出/打印一个字符

int main()
{
  int ch = getchar();
  putchar(ch);
  return 0;
}

运行结果:

我们会发现在代码中getchar是需要用整型接收的。


Q:getchar读取的是字符,为什么是用整型接收呢?

A:getchar正常读取字符时返回的时字符的ASCII码值(范围:0~127),如果读取失败返回EOF --> -1(整形-1),所以使用整型 int 接收。

Q:看这段代码,他的执行结果是什么呢?

int main()
{
  int ch = 0;
  while ((ch = getchar()) != EOF)
  {
    putchar(ch);
  }
  return 0;
}

运行结果:

这里每输入一个就会打印一个,想要终止程序 Ctrl+Z 回车就可以结束。

工作原理:

getchar在读取字符的时候不是直接从盘上读取,中间会经过一个输入缓冲区。如图所示(以上面这个代码为例):

相关文章
|
2月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
78 5
|
2月前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
48 6
|
2月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
2月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
2月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
19 0
|
2月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环
|
2月前
|
编译器 C语言 C++
【C语言】循环语句(语句使用建议)
【C语言】循环语句(语句使用建议)
|
C语言 SDN
《C语言及程序设计》程序阅读——用循环累加
返回:贺老师课程教学链接  写出下面程序运行的结果。(1) #include &lt;stdio.h&gt; int main( ) { int i,m=1; for(i=5; i&gt;=1; i--) { m=(m+1)*2; printf("m=%d\n",m); } return 0; } (2)#include
799 0
|
C语言
《C语言及程序设计》实践项目——用循环累加
返回:贺老师课程教学链接  【项目1:分数的累加】编程序,输出1/3-3/5+5/7-7/9…+19/21的结果提示:如果直接解决上面的问题有困难,可以设计一条“由易到难”的路线,逐渐解决其中要解决的问题,让自己的思路明朗起来。(1)1+2+...+20  ——这个应该会(2)1+1/2+1/3+…+1/20  ——分数的累加,注意两个整型相除,商也为整型,而显然求和结果应该是小数(3)1/2
989 0
|
C语言
C语言及程序设计初步例程-34 用循环累加
贺老师教学链接  C语言及程序设计初步 本课讲解 求1+1/2+1/3+…+1/20? #include &lt;stdio.h&gt; int main() { int i=1; double sum=0.0, t; while (i&lt;=20) { t=1.0/i; sum=sum+t; i++;
917 0