黑马程序员技术交流社区
标题:
为什么语句都能打印呢?什么情况下不加else就可以执行下...
[打印本页]
作者:
aerkadiya
时间:
2013-6-5 14:13
标题:
为什么语句都能打印呢?什么情况下不加else就可以执行下...
本帖最后由 aerkadiya 于 2013-6-7 21:12 编辑
import java.util.Scanner;
class ZuoYe0203
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int number=scan.nextInt();
int a;
int b;
int c;
int sum;
if(number>=100 && number<=999)
{
a=number/100;
b=(number-a*100)/10;
c=number-a*100-b*10;
sum=a*a*a+b*b*b+c*c*c;
if(sum==number)
{
System.out.println("这个数字是水仙花数");
}
System.out.println("这个数字不是水仙花数");
}
System.out.println("请输入一个三位数");
}
}
为什么输入任意三位数字下面的三句话都能打印?
作者:
w270307032
时间:
2013-6-5 14:46
if ....else 和if 的区别就在于,if ....else只会执行if和else其中的一部分语句,要么执行if的,要么执行else的,不会两个都执行。而if,是先判断如果if的条件为真,那么就执行if语句里面的内容,如果不满足条件则不执行,但是和if外的其它同级的其它语句,不管if条件是否为真假,都会被执行到。如楼主的代码:
如果输入的不是3位数,那么就不满足 if(number>=100 && number<=999),则它里面的System.out.println("这个数字是水仙花数")和System.out.println("这个数字不是水仙花数")不会被执行到,但是与它同级的System.out.println("请输入一个三位数"),肯定会被执行到的。
如果你输入的是个三位数,且满足if(sum==number)这个条件,则System.out.println("这个数字是水仙花数")被执行到,如果不满足if(sum==number)这个条件,则不会被执行到。但是与它同级的System.out.println("这个数字不是水仙花数");肯定会被执行到,比它高一级的System.out.println("请输入一个三位数")也肯定会被执行到。
如果加上else判断,则二者只能执行其一。
作者:
郑晓飞
时间:
2013-6-6 17:27
if不加{},只控制if后面的一条语句,加上{}控制{}中的语句。if单独使用语句结束后,后面的语句肯定会执行到了,if和else一起使用为判断语句,if执行则else不执行,否则也一样的。
建议你在if{}语句后加else{},另外最后的: System.out.println("请输入一个三位数"); 输出语句放在随机键盘输入数之前效果会不会更好点儿呢
作者:
hx32
时间:
2013-6-7 09:23
本帖最后由 hx32 于 2013-6-7 09:25 编辑
<P>class ZuoYe0203
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int number=scan.nextInt();
int a;
int b;
int c;
int sum;
if(number>=100 && number<=999)
{
a=number/100;
b=(number-a*100)/10;
c=number-a*100-b*10;
sum=a*a*a+b*b*b+c*c*c;
if(sum==number)
{
System.out.println("这个数字是水仙花数");
} <FONT color=red> //if的执行范围到此终结,不影响下面的语句。if只控制最近的{}内的语句</FONT>
System.out.println("这个数字不是水仙花数");
}
System.out.println("请输入一个三位数");
}
}</P>
<P>//不会修改颜色,你看下第二十行。实际上楼上几位说的比我详细,我只是在具体编码后边标注了一下
</P>
复制代码
作者:
刘凯
时间:
2013-6-7 09:37
问题解决了 标注 “已解决”
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2