喜悦国际村's Archiver

ccnjava 发表于 2004-9-30 08:45 PM

关于if。。else。。超弱智问题。。谁能解答。。汗

Q
int grade=-11;
if(grade>100)
        System.out.println("您输入的成绩不再取值范围中");
else if(grade>80)     
        System.out.println("优秀");
else if(grade>=60)
        System.out.println("及格");
else if(grade<60)
        System.out.println("不及格");
else if(grade<0)
        System.out.println("您输入的成绩不再取值范围中");

我的意思是程序要在grade大于100输出您输入的成绩不再范围中,而
小于0同样输出这句话。我知道可以写成(grade>100 |grade<0)
但是。我不明白。上面我这样写为什么在
grade>100会输出"您输入的成绩不在取值范围中"而小于0却输出不及格。
想要像这样写成2句表达这个意思,怎么改?

ccnjava 发表于 2004-10-1 09:25 AM

长期以来谢谢大家帮助,小菜鸟再接再厉

A:刚得到一高人指点。上面的问题得到解决了。呵呵。
  这次小菜鸟自己把自己回复了把,呵呵
解决办法1:可以像上面写成(grade>100 || grade<0)
        2:把grade写在<60之前。因为程序按顺序要先判断<60,而小于60的数
也小于0,再小于60成立以后<0就不判断了。
        3:最主要的是逻辑错误,如果一个if。。else要写就都写成>XX
或者<XX,不要一半写>中途又改成<XX.
           上题完全可以写成if(grade>0)
                System.out.println("不及格");
                else
                System.out.println("您输入的成绩不再取值范围中");

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.