我是靠谱客的博主 无语身影,最近开发中收集的这篇文章主要介绍☀️光天化日学C语言☀️(29)- while 语句 | 死循环啦!一、前言二、人物简介三、程序结构概述四、循环结构简介课后习题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

????饭不食,水不饮,题必须刷????

C语言免费动漫教程,和我一起打卡!
????《光天化日学C语言》????

LeetCode 太难?先看简单题!
????《C语言入门100例》????

数据结构难?不存在的!
????《画解数据结构》????

LeetCode 太简单?算法学起来!
????《夜深人静写算法》????

文章目录

  • 一、前言
  • 二、人物简介
  • 三、程序结构概述
  • 四、循环结构简介
    • 1、while 语句
      • 1)语法规则
      • 2)死循环
      • 3)简单应用
    • 2、do-while 语句
      • 1)语法规则
  • 课后习题

一、前言

  本文作者是从 2007 年开始学 C语言 的,不久又接触了C++,基本就是 C/C++ 技术栈写了 14 年的样子,不算精通,但也算差强人意。著有《夜深人静写算法》系列,且承诺会持续更新,直到所有算法都学完。主要专攻 高中 OI 、大学 ACM、 职场 LeetCode 的全领域算法。由于文章中采用 C/C++ 的语法,于是就有不少读者朋友反馈语言层面就被劝退了,更何况是算法。
  于是,2021 年 06 月 12 日,《光天化日学C语言》 应运而生。这个系列文章主要服务于高中生、大学生以及职场上想入坑C语言的志同道合之人,希望能给祖国引入更多编程方面的人才,并且让自己的青春不留遗憾!
  这一章的主要内容是 一种循环结构,while 语句。

二、人物简介

  • 第一位登场的就是今后会一直教我们C语言的老师 —— 光天。
  • 第二位登场的则是今后会和大家一起学习C语言的没什么资质的小白程序猿 —— 化日。

三、程序结构概述

在C语言中,共有三大常用的程序结构:
  顺序结构: 代码从前往后执行,没有任何跳转;
  选择结构 : 也叫分支结构,即 if else、switch 以及条件运算符;
  循环结构: 即重复执行同一段代码。

四、循环结构简介

#include <stdio.h>
int main() {
    printf("I love you!n");
    printf("I love you!n");
    printf("I love you!n");
    printf("I love you!n");
    printf("I love you!n");
    printf("I love you!n");
    printf("I love you!n");
    printf("I love you!n");
    return 0;
} 

  • 重要的是,当输出语句为 100 条时,如果还用上面的思路进行输出,整个代码就会显得非常臃肿和冗余。所以,我们需要引入一种能够循环执行代码的结构。

1、while 语句

1)语法规则

  • while 语句的一般形式为:
while(表达式){
    语句块
}

它的含义是:
  1)首先,计算 表达式 的值,当值为真时, 执行 语句块 的内容;
  2)然后,再次计算 表达式 的值,如果为真,继续执行 语句块……
  这个过程会一直重复,直到表达式的值为假,则退出循环,执行 while 后面的代码。

  • 我们通常将上述的 表达式 称为循环条件,把 语句块 称为循环体,整个循环的过程就是不停判断 循环条件、并执行 循环体代码 的过程。
  • 例如,我们可以把输出 100 条 “I love you!” ,写成如下代码:
#include <stdio.h>
int main() {
    int iCount = 0;                // (1)
    while(iCount < 100) {          // (2)
        printf("I love you!n");   // (3)
        ++iCount;                  // (4)
    }
    return 0;
} 
  • ( 1 ) (1) (1) 初始化一个计数器iCount为 0;
  • ( 2 ) (2) (2) 由于计数器小于 100,所以循环条件为真,则执行循环体;
  • ( 3 ) (3) (3) 输出一句话;
  • ( 4 ) (4) (4) 计数器自增;
  • 目前为止,已经输出了一句话,并且计数器iCount为 1,继续回到 while 部分判断计数器是否小于 100,成立则继续执行,当循环体执行了 100 次以后,iCount的值为 100,此时条件不满足,遂跳出循环。
  • while 循环可以这么设计:设置一个带有变量的循环条件;在循环体中额外添加一条语句,让它能够改变循环条件中变量的值。这样,随着循环的不断执行,循环条件中变量的值也会不断变化,终有一个时刻,循环条件不再成立,循环就结束了。

2)死循环

  • 当循环条件永远成立的时候,while 循环会一直执行下去,这就是我们通常所说的 死循环 。如下代码所示:
#include <stdio.h>
int main(){
    while(1) {
        printf("I love you!n");
    }
    return 0;
}

  • 它会不停地输出“1”,直到用户强制关闭进程。

3)简单应用

  • 输入输出是我们常用的一种来测试算法实现正确性的方式。例如,当我们需要进行循环输入 a 和 b,并且输出 a + b 的值的时候,我们就可以这么写:
#include <stdio.h>
int main() {
    int a, b;
    while(scanf("%d %d", &a, &b) != EOF) {
        printf("%dn", a + b);
    }
    return 0;
} 
  • 这里,我们先考虑scanf("%d %d", &a, &b)这个函数的返回值,当你从控制台输入两个数时,它会根据输入的格式正确与否,返回输入成功的数的个数,所以正常情况是返回 2 。
  • 当没有任何输入时,它会返回 EOF,所以导致 循环条件 变成,从而退出循环,退出循环以后就顺理成章的结束循环体,我们也就不能再进行输入了。

  其中EOF是一个宏定义,代表文件结尾,它的值是 -1,也就是说:scanf(...)函数,在没有任何输入以后会返回 -1。

【例题1】请利用 while 循环来计算 斐波那契数列 第 n n n 项,斐波那契数列的定义如下: f ( n ) = { 1 n = 0 1 n = 1 f ( n − 1 ) + f ( n − 2 ) n > 1 f(n) = begin{cases} 1 & n=0 \ 1 & n = 1 \ f(n-1) + f(n-2) & n > 1end{cases} f(n)=11f(n1)+f(n2)n=0n=1n>1

  • 实现过程参见课后习题。

2、do-while 语句

1)语法规则

  • 除了 while 循环,在 C语言 中还有一种 do-while 循环。
  • do-while 的一般形式为:
do{
    语句块
}while(表达式);

  do-while 循环与 while 循环的区别在于:它会先执行 语句块,然后再判断 表达式 是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次 语句块

  • 关于循环结构的内容,今天就先讲到这里了,后面还会提到 另一种循环结构 —— for 循环。循环结构可以帮助我们干很多事情,这个就需要大家自己去体会和摸索了,当然,课后习题也能够帮助大家更好的理解循环结构。

通过这一章,我们学会了:
  while 语句的用法;
  do while 语句的用法;

  • 希望对你有帮助哦 ~ 祝大家早日成为 C 语言大神!

课后习题

  • 【第01题】A + B | 四种输入方式,开启刷题的序章
  • 【第02题】给定 n,求 1 + 2 + 3 + … + n 的和 | 四种解法
  • 【第47题】超级楼梯 | 迭代问题的鼻祖,斐波那契数列

????饭不食,水不饮,题必须刷????

C语言免费动漫教程,和我一起打卡!
????《光天化日学C语言》????

LeetCode 太难?先看简单题!
????《C语言入门100例》????

数据结构难?不存在的!
????《画解数据结构》????

LeetCode 太简单?算法学起来!
????《夜深人静写算法》????

最后

以上就是无语身影为你收集整理的☀️光天化日学C语言☀️(29)- while 语句 | 死循环啦!一、前言二、人物简介三、程序结构概述四、循环结构简介课后习题的全部内容,希望文章能够帮你解决☀️光天化日学C语言☀️(29)- while 语句 | 死循环啦!一、前言二、人物简介三、程序结构概述四、循环结构简介课后习题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部