Q关于if。。else。。超弱智问题。。谁能解答。。汗 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句表达这个意思,怎么改?
----------------解决方案--------------------------------------------------------
之所以会输出小于0的出现不及格其实很简单啊,因为你先判断grade<60,而<0的数确实小于60,所以就是这样,而且又因为是else的缘故,所以后面那句grade<0在grade<60成立后就根本不判断了,可以这样改:
1.像你所说的改成(grade>100 || grade<0)
2.把grade<0写在grade<60之前
3.把if...else语句用select case替代,因为grade是int型的所以用这种结构比较合适,不过依然要注意<0要放在前面
其实最最根本的问题也并不在这些语句的写法上,而是你的逻辑本身有问题,看看为什么会有这样的错误,如果你这里grade<60改成grade>0,那么就什么问题都没了,也就是最后两句这么写 else if(grade>0)输出不及格 else 输出不在范围
发现问题了么?比较时的顺序最好不要随意改动,一直是以大于来比较的就一直用>,由于最后你用了<60,所以就节外生枝了
----------------解决方案--------------------------------------------------------
谢谢您的回复,我下去自己看了,呵呵
版主恭喜您回复的帖子进入精华区。我看到有个钻石。。应该是了吧
。。。精华区里面也有小菜鸟的回复了。。。不过却是那个全回复错的帖子。。。汗
----------------解决方案--------------------------------------------------------
谢谢J湖散人版主,问题解决了,yeah~。 唉。。惭愧。。偶。。。逻辑问题实在。。唉。。叹气。。。 这个可真不好补。不过。。对了,我曾经做过那个智商测验。。 就是考逻辑的,分数还挺高的。(旁人:假的蒙谁呢? 小菜鸟:55555,你们都不信。。是真的~哭) 我曾经在论坛贴过那个地址。。。呵呵。 http://www.k369.com/qt/iqtest/iq.htm 这个呵呵
啊,我这里恰好有一道逻辑题。呵呵,我还没有来得及做,不过不难 大家若有兴趣可以看看,题长了点。
题目:到底谁养鱼了。 前提: 1. 有5栋5种颜色的房子 2. 每一位房子的主人国籍都不同 3. 这5个人每人只喝一个牌子的饮料, 只抽一个牌子的香烟,只养一种宠物 4. 没有人有相同的宠物, 抽相同牌子的香烟, 喝相同的饮料
提示: 1. 英国人住在红房子里 2. 瑞典人养了一条狗 3. 丹麦人喝茶 4. 绿房子在白房子左边 5. 绿房子主人喝咖啡 6. 抽PALL MALL烟的人养了一只鸟 7. 黄房子主人抽DUNHILL烟 8. 住在中间那间房子的人喝牛奶 9. 挪威人住在第一间房子 10. 抽混合烟的人住在养猫人的旁边 11. 养马人住在DUNHILL烟的人旁边 12. 抽BLUE MASTER烟的人喝啤酒 13. 德国人抽PRINCE烟 14. 挪威人住在蓝房子旁边 15. 抽混合烟的人的邻居喝矿泉水
问题是: 谁养鱼?
哈哈,这个可是动脑筋的题了。。。其实高手门只要看看就可以猜出 我认识个人,就是做这类题的狂人,他们都管他叫“逻辑王”。。。
另外在注一题吧
请从理论上或逻辑的角度在后面的空格中填入后续字母或数字;
3968, 63, 8, 3 __
这题我会两种解答方法。。呵呵。。大家看看最多能找到几种规律呢?
----------------解决方案--------------------------------------------------------