计算机很擅长于干重复的事情,因为他没有情感,并不会因为重复而感到厌烦。
可以说绝大多数程序都会用到循环!而现在我们就将学习一种循环语句——while语句
和上一篇文章类似,我们将尝试着使用新学的知识来编写一个程序
我们将编写一个能打印摄氏度与华氏度换算表的程序。以10为步长,输出从0-100摄氏度的对应的华氏度的程序
#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("摄氏度\t华氏度:\n");
    return 0;
}
首先是程序的基本框架,因为我们希望让计算机帮我们算出他们的对应关系,而不是我们手工去计算,因此就涉及到循环的知识
C语言当中有三种专门的循环语句,分别是while,do…while,和for
其中while的用法相对于其他几种循环来说稍微简单一些,因此我们便从while开始学习循环
while的结构有些类似if
while (…)
{
//循环的代码
}
和if类似,while的后面并没有分号,同时小括号内的…叫做条件表达式
而大括号括起来的部分则叫做循环体
执行到while时,当小括号内的表达式的值为真时,将会从循环体的第一行,按照相应的逻辑执行
在循环体执行完一次后,将再次判断小括号内的表达式是否为真,如果是真,则重复这一过程
否则就执行循环体后面的语句。
换句话说,除非while语句内的条件表达式为假,否则循环体将被重复运行!
以下面这个程序为例子
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i = 0;
    while (i <= 100)
    {
        printf("%d\n", i);
        i = i + 1;
    }
    return 0;
}
它将在屏幕上打印0 – 100一共101个数字
这个程序应该很好理解,第七行程序执行到while循环,此时i=0,显然表达式为真
因此开始执行循环体,首先打印出i变量的值,然后让i本身加上1
这时i=1,表达式仍然为真,于是程序从循环体的开头继续执行,这次将向屏幕打印数字1
直到最后一次循环,此时1=100,满足条件进入循环后打印数字,并且自增。然后i的值便变成了101,此时条件表达式返回的值变成了假
程序退出循环,来到return语句,程序退出
似乎目前循环看起来很简单,但是不要庆幸,循环的加入才是你噩梦的开始!什么噩梦?我们到时候就知道了
现在再回到上面打印温度换算表的程序上来
我们第一个需要计算的温度是0华氏度,打印到100华氏度时停止,因此我们的while应该是这样的
 while (Fdegree <= 100)
{
}
华氏度转换为摄氏度的公式是:摄氏度=(华氏度-32)/1.8
请参考上面的例子自己将循环体写完
同样的
我们在最后给出一个参考的程序
#include <stdio.h>
#include <stdlib.h>
int main()
{
    double Fahrenheit = 0, Celsius = 0;
    printf("摄氏度\t华氏度:\n");
    while (Fahrenheit <= 100)
    {
        Celsius = (Fahrenheit - 32)/1.8;   //将华氏度换算成摄氏度
        printf("%.2f\t%.2f\n", Fahrenheit, Celsius);
        Fahrenheit = Fahrenheit + 10;
    }
    return 0;
}
作为练习,请尝试着将程序修改为将摄氏度转换为华氏度的功能
同时范围改为0-150摄氏度,步长改为5摄氏度

我学过这个,还是有一定难度的
华氏度和摄氏度循环转换程序第十二行应该先输出 Celsius再输出Fahrenheit吧,要不然运行后结果是相反的