全部问题 > 当前问题

有关if语句的问题

if后面括号里的内容不就是代表一个条件,应该就是判断一下啊?为什么最后输出的时候,还要计算if括号内的结果

漫天小雨 2016-3-4 23:38:49

共 2 个回答

水根 2016-3-5 02:09:22

它不是要计算if语句的结果,它只是判断这个语句是否为真,如果为真,它就返回一个非零的数,那就执行if下的那个语句,如果为假,那么就返回一个零,那就不执行它的那个语句了。

嘿嘿大人 2016-3-5 09:11:37

if(a++>9)分为两步;

第一步if(a>9)

第二步a=a+1;

这两步必须一起都执行,不能只执行第一步,这两步本身就是一个表达式,只是为了理解才拆分为两步的,所以只要你执行了if(a++>9)就代表你执行了这两步

问题来自: a 和 a
有以下程序
#include <stdio.h>
main()
{ int a;
  scanf("%d",&a);
  if(a++<9)printf("%d\n",a);
  else printf("%d\n",a--);
}
程序运行时,从键盘输入9<回车>,则输出结果是 ______ 。
A. 10
B. 11
C. 9
D. 8
答案:A
解析:a++是先执行再加1,a--是先执行再减1 a=9,则a++的值也是9,所以a++&lt;9为假,执行else后面的语句。经过a++&lt;9的判断之后,a已经从9变成了10,此时输出的是a--的值,所以结果是10。因此选A。