C语言从头学13——流程控制(二)

接着学习流程控制,并继续上一篇的编号。

4、while 语句

while语句用于循环结构,满足条件时,不断执行循环体,直到条件不满足时退出。如果

一直满足循环条件无法结束循环,会陷入死循环,这是应当避免的。

格式:

while (条件表达式)

{

语句1;

......

语句n;

}

举例程序:

cpp 复制代码
  #include<stdio.h>
  int main(void)
  {
     int i = 0;
     while (i < 26) //如果条件不成立则不能进入循环体
     {
        printf(" %c", 65+i); //利用ASCII值显示小写字母,a到z的ASCII码为097~122
        printf(" %c\n", 97+i); //利用ASCII值显示大写字母,A到Z的ASCII码065~090
        i++; //如果没有这条语句,会陷入死循环
     }
     getchar(); //屏显暂停
     return 0;
  }

补充:如果将条件表达式设成 "1" 即循环条件总是为真,这样的循环有用吗?回答是有用的,我们可以在循环体内设置一个 if 语句,当退出条件满足时,在if语句中运行 break 就退出了循环。这种用法多用于菜单项的循环,只有选择"退出"或"结束"时才运行break。(break后边详细介绍)

5、do...while结构

这种结构也叫直到型循环,即先不管是否符合循环条件,上来先执行一次循环体,然后再看是否满足循环条件是继续循环还是结束。

格式:

do {

语句1;

......

语句n;

} while (条件表达式)

这种结构除了直接进入循环外,与while语句一样,也可以设成无限循环再用 if 语句中的break退出。举例小程序如下:

cpp 复制代码
  #include<stdio.h>
  int main(void)
  {
      int i = 0;
      do {  //不管循环条件如何,先进入循环体
          printf("i=%d\n",i); //显示i值
          if (i == 10) break; //定义退出条件,退出条件也可以放到while后边的括号中(i<=10)
          i++;
      }  while (1);
      getchar();//屏显暂停
      return 0;
  }

6、for语句

for语句是编程过程中使用最频繁的循环结构,适用于精确控制循环次数,经常用于为数组赋值、显示数组内容等场合。

格式:

for ( 初始表达式; 循环条件判断; 循环变量处理表达式 )

{

语句1;

.....

语句n;

}

代码举例:

cpp 复制代码
   int x[10]; //声明一个10个元素的int型数组
   for(int i=0;i<10;i++)
   {
      x[i]=i; //为x[i]赋值
      printf("%i\n",x[i]);\\每行一个显示x[i]
   }

补充:for 循环体有两个或两个以上语句时,我们会给循环体语句用大括号"{}"括起来,但对于

一个语句的情况,可以不用大括号括起来。此处建议大家:对于初学者,无论是一句还是多句,

干脆都用大括号括起来;如实在不想用"{}"括起来,循环体语句要和循环条件放到一行,这样看上去逻 辑更清楚。这些也适用使用 if 语句等。

相关推荐
stm 学习ing18 分钟前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
茶猫_5 小时前
力扣面试题 - 25 二进制数转字符串
c语言·算法·leetcode·职场和发展
ö Constancy6 小时前
Linux 使用gdb调试core文件
linux·c语言·vim
lb36363636366 小时前
介绍一下strncmp(c基础)
c语言·知识点
wellnw6 小时前
[linux] linux c实现共享内存读写操作
linux·c语言
珹洺8 小时前
C语言数据结构——详细讲解 双链表
c语言·开发语言·网络·数据结构·c++·算法·leetcode
.Cnn9 小时前
用邻接矩阵实现图的深度优先遍历
c语言·数据结构·算法·深度优先·图论
2401_858286119 小时前
101.【C语言】数据结构之二叉树的堆实现(顺序结构) 下
c语言·开发语言·数据结构·算法·
寻找码源10 小时前
【头歌实训:利用kmp算法求子串在主串中不重叠出现的次数】
c语言·数据结构·算法·字符串·kmp
带多刺的玫瑰12 小时前
Leecode刷题C语言之统计不是特殊数字的数字数量
java·c语言·算法