携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第20天,点击查看活动详情
while循环经常依赖表达式做比较,这样的表达式称为关系表达式,出现在关系表达式中间的运算符叫做关系运算符。
关系运算符的表
| 运算符 | 含义 |
|---|---|
| < | 小于 |
| <= | 小于或等于 |
| == | 等于 |
| >= | 大于或等于 |
| != | 不等于 |
> | 大于 |
关系运算符常用于构造while语句,这些语句都会检查关系表达式为真还是为假。下面举几个例子包含关系表达式的。
- 案例1
while(number<6){
printf("Your number is too small.\n");
scanf("%d",&number);
}
- 案例2
while(ch!='$'){
count++;
scanf("%c",&ch);
}
- 案例3
while(scanf("%f",&num)==1)
sum=sum+sum;
注意:第2个案例while语句的关系表达式还可以用于比较字符。比较时使用的机器字符码。但是,不能用关系运算符比较字符串。
虽然关系运算符也可以用来比较浮点数,但是要注意:比较浮点数时,尽量只使用<和>。因为浮点数的舍入误差会导致在逻辑上应该相等的两数却不相等。例如,3乘以1/3的积是1.0 。如果用把1/3表示成小数点后面6位数字,乘积则是0.999999,不等于1.使用fabs()函数。例如下面这个例子用这个方法来接近预期结果:
#include <stdio.h>
#include<math.h>
int main(){
const double ANSWER=3.14159;
double response;
printf("What is the value of pi?\n");
scanf("%1f",&response);
while(fabs(response-ANSWER)>0.0001){
printf("Try again!\n");
scanf("%1f",&response);
}
printf("Close enough!\n");
return 0;
}
大家可以尝试运行一下,循环会一直提示用户继续输入,除非用户输入的值与正确值之间相差0.0001。
什么是真
在C中,表达式一定有一个值,关系表达式也不例外。
通过这个例子来看看表达式的值的真假区别
#include <stdio.h>
int main(){
int true_val,false_val;
ture_val=(10>2); //关系为真的值
false_val=(10==2);//关系为假的值
printf("true = %d;false=%d\n",ture_val,false_val);
return 0;
}
把表达式为真的值赋给ture_val,表达式为假的值赋给false_val。输出的结果:
turn=1; false=0
对于C语言来说,表达式为真的值是1,表达式为假是0.例如使用while循环结构时,会用1当作判断条件:
while(1){
执行内容;
}