c语言 很多if嵌套和if后面跟着else嵌套

#include<stdio.h>
main()
{
float a;
scanf("%f",&a);
while (a > 99999 || a < 0)
{
printf("重新输入\n");
scanf("%f",&a);
}
if (a>9999)
printf("这是个五位数");
else
if (a>999)
printf("这是个四位数\n");
else
if (a>99)
printf("三位数");
else
if (a>9)
printf("二位数");
else
if (a>0)
printf("一位数");
}
这段代码如果不用else,只用很多if,那么如果输入10000,输出结果就是“这是个五位数 这是个四位数 三位数 二位数 一位数”,就是满足了所有的if条件。
但是加上else了,就只会选择一个if条件,输入10000就只有“这是个五位数”了。
原来else还可以把满足所有条件的东西变成只满足一个条件啊。
我的意思是10000满足了所有的条件,加上else就可以单个条件输出了。
我的理解对吧?请指导指导我。

如果都是if每个if都会做判断,因为10000都满足这五个if的条件所有输出结果“这是个五位数 这是个四位数 三位数 二位数 一位数”;

但是用if else时,如果第一个if满足条件那么下面的if else就不会做判断了。如果你把判断a>0这个语句写在前面的话输出的就是“一位数”而不是下面的语句了。
#include <stdio.h>

int main(int argc, const char * argv[]) {

float a;

scanf("%f",&a);

while (a > 99999 || a < 0)

{

printf("重新输入\n");

scanf("%f",&a);

}

if (a>0)

printf("一位数");

else if (a>9999)

printf("这是个五位数");

else if (a>999)

printf("这是个四位数\n");

else if (a>99)

printf("三位数");

else if (a>9)

printf("二位数");

}
打印出得结果;是"一位数"
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-16

关键看懂以下两个结构:

1、

if(A)
    B;
    C;

判断条件A,如果符合则执行B,然后if语句结束,再执行C;如果条件A不符合,则跳过if语句执行C

2、

if(A)
    B;
else
    D;
    C;

判断条件A,如果符合则执行B,否则执行D,然后if语句结束,再执行C

追问

也谢谢你

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网