深入学习了while循环
一、while循环
1.long sum = 0L;
0L是指long类型中的0,而不是int 类型的0(0)
2.a = scanf("%d",&b);
如果scanf()函数读取到的是数字,则返回值1;反之,则为0
在C语言中,1为真,0为假
//summing.c--根据用户键入的整数求和
#include <stdio.h>
int main(void)
{
long num;
long sum = 0L;
int status;
printf("Please enter an integer to be summed "
"(q to qiut):"); //不仅是q,任何非数字的数据均会跳出循环
status = scanf("%ld", &num); //如果scanf()读取一个整数,返回1,
//如果不是数字会返回0
while (status == 1)
{
sum += num;
printf("Please enter next integer "
"(q to quit):");
status = scanf("%ld", &num);
}
printf("Those integers sum to %ld.\n", sum);
return 0;
}
此处的真假等同于数学中的真命题与假命题,例如
//t_and_f.c--C中的真和假的值
#include <stdio.h>
int main(void)
{
int true_val, false_val;
true_val = (10 > 2); //真为1,假为0
false_val = (10 == 2);
printf("true = %d;"
"false = %d \n",
true_val, false_val);
return 0;
}
_Bool:只能储存真或假,C语言中将所有非零数值都认为是真
3.while(expressing)的expressing可以输入一个变量,当该变量不为0时,进入循环;当变量等于0,跳出循环
//truth.c--哪些值为真
#include <stdio.h>
int main(void)
{
int n = 3;
while (n)
//默认n != 0
printf("%2d is true\n", n--);
printf("%2d is false\n", n);
n = -3;
while (n)
printf("%2d is true\n", n++);
printf("%2d is false\n", n);
return 0;
}
4.fab()函数
fab()函数存在于math.h中,使用前需要声明#include <math.h>.fab()函数可以用来比较浮点数,其返回值为一个浮点数的绝对值。如
//cmpflt.c--浮点数比较
#include <stdio.h>
#include <math.h>
int main(void)
{
const double ANSWER = 3.14159;
double response;
printf("What is the value of pi?\n");
scanf("%lf", &response);
while (fabs(response - ANSWER) > 0.0001)
//fab()存在与math.h中,该函数返回一个浮点值的绝对值
{
printf("Try again!\n");
scanf("%lf", &response);
}
printf("Close enough!\n");
return 0;
}