(本文为博闻网版权所有,转载必须注明出处。)

C语言中,if语句while循环都会用到布尔表达式。下面是一个使用if语句的简单例子:

#include

int main()
{
int b;
printf("输入一个值:");
scanf("%d", &b);
if (b < 0)
printf("值为负数
n");
return 0;
}

程序从用户读入一个数字,然后用if语句测试这个数字是否小于零。如果小于零则打印一条消息,否则什么也不做。程序中的(b<0)称为布尔表达式。C需要求出此表达式的值才能决定是否打印后面的消息。如果布尔表达式的结果是真,那么C将执行紧接在if语句后面的一行代码(或花括号中的代码块);如果布尔表达式的结果是假,那么C将跳过紧接在if语句后面的代码行或代码块。

if语句示例

下面是一个稍复杂一点的例子:

#include

int main()
{
int b;
printf("输入一个值:");
scanf("%d", &b);
if (b < 0)
printf("值为负数
n");
else if (b == 0)
printf("值为0
n");
else
printf("值为正数
n");
return 0;
}

这个例子中的else ifelse部分处理了值为零或为正的情况。

下面是一个更复杂一些的布尔表达式:

if ((x==y) && (j>k))
z=1;
else
q=10;

上面这个if语句的意思是:“如果变量x和y的值相等,而且变量j的值大于k的值,那么令变量z的值等于1,否则令变量q的值等于10。”在C程序中,您经常使用类似这样的if语句进行判断。一般而言,大多数判断都很简单,像第一个例子。但偶尔也会遇到复杂一些的情况。

请注意,C使用==判断相等,而用=为变量赋值。&&在C中代表布尔操作符与

这是C语言中的所有的布尔操作符:

等于 ==
小于 <
大于 >
小于等于 <=
大于等于 >=
不等于 !=
与 &&
或 ||
非 !

您会发现,while声明和if声明使用起来一样简单。举个例子:

while (a < b)
{
printf("%d
n", a);
a = a + 1;
}

这会反复运行大括号中间的两行语句,直到a大于或等于b。大体来说,while声明是这样工作的:

while语句示例

C还提供一种do-while结构:

do
{
printf("%d
n", a);
a = a + 1;
}
while (a < b);

C中的for循环只不过是while语句的精简写法。例如,您有如下C代码:

x=1;
while (x<10)
{

……
x++;
}

您可以用for循环改写成下面这样:

for(x=1; x<10; x++)
{
……
}

请注意,while循环实际包括了三个步骤:初始化(x=1)、判断(x<10)和增量(x++)。使用for循环可以把三个步骤写在同一行中,但并不限制三个部分的具体内容。例如,您有如下C代码:

a=1;
b=6;
while (a < b)
{
a++;
printf("%d
n",a);
}

用for循环就可以写为:

for (a=1,b=6; a < b; a++,printf("%dn",a));

这样虽然有点不易读懂,但还是允许的。在for循环的初始化和增量(不包括测试)部分,我们可以使用多条语句并用逗号操作符加以分隔。许多 C 程序员喜欢用一行代码“浓缩”进很多信息。但也有许多人认为这样会使代码更加难以理解,所以他们选择分开来写。

布尔表达式===的对比
==符号是C语言的一个常见的“陷阱”,因为时不时会由于疏忽将其写成=。这个错误很容易犯,但对于编译器来说两者的含义截然不同。C的布尔表达式既接受=也接受==,然而程序的执行却大相径庭。

C的布尔表达式求值的结果是整数,所以整数也可以直接作为布尔表达式使用。C中整数零代表假,其他任何非零整数代表真。下面是的C代码是合法的:

#include 

int main()
{
int a;

printf("输入一个数字:");
scanf("%d", &a);
if (a)
{
printf("值为真
n");
}
return 0;
}

如果a是任何非零值,printf语句就会执行。

在C中,诸如if (a=b)这样的语句的意义是:“将b赋值给a,然后判断a的布尔值。”如果a变成0,则if语句判断为假,否则为真。也就是说a的值在判断过程中改变了。如果本该写==的,那么以上行为显然不是的本意(尽管正确使用时还可利用这一特性)。所以在使用===的时候请格外小心。




 打印  电子邮件  反馈  引用
编辑推荐
软件狗是什么?
软件狗(Software Dog)是一种计算机软件的加密方式,是“硬件加密锁”的
间谍软件工作原理
您的计算机是否曾变得非常慢,即使打开Word处理器也会占用很长时间,间谍软件可能
什么是路由算法?
路由器是管理网络流量和发送数据包的,但是它是如何决定数据包发送的呢?通过本文,博
Gnutella文件共...
Napster在巅峰时期或许是有史以来最受欢迎的网站。紧随其后的文件共享体系架构
主页 |  公司信息 |  广告服务 |  招聘信息 |  隐私 |  联系我们 |  帮助 |  条款和条件