java吧 关注:1,243,836贴子:12,719,708
  • 23回复贴,共1

新人菜鸟问一个菜问题,请各位先贤不吝赐教

只看楼主收藏回复

import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("输入数字");
int A=in.nextInt();
if(A==0){
System.out.println("生成一只白猪");
}
if(A==1){
System.out.println("生成一只黑猪");
}
if(A==2){
System.out.println("生成一只红猪");
}
else{
System.out.println("生成一只变种猪");
}
}
}
这些代码中,为什么我输入0不但会跳出生成一只白猪,还会跳出生成一只变种猪?输入1也是跳出黑猪和变种猪两句话,但输入2就只跳出红猪?我的本意是0=白猪,1=黑猪,2=红猪,其他数字的话就变种猪。
问题可能比较无聊,但我真的不懂,希望赐教一二。


1楼2015-01-23 01:43回复
    if -else if -else if 循环这样走


    IP属地:福建来自Android客户端3楼2015-01-23 02:27
    回复
      if嵌套有问题。


      IP属地:广东来自Android客户端4楼2015-01-23 03:24
      回复
        if逻辑问题。改用switch吧。如果你学了architecture,你会发现这样写程序性能比switch差一些


        IP属地:四川来自Android客户端5楼2015-01-23 05:33
        回复
          额,你的if写的好不规范


          来自Android客户端6楼2015-01-23 06:40
          收起回复
            第二个if开始要用else if


            IP属地:重庆来自手机贴吧8楼2015-01-23 08:19
            回复
              这样写只把第三个if和else作为一对,与上面两个无关,需要把中间两if改成else if,希望对你有帮助


              IP属地:广东来自Android客户端9楼2015-01-23 08:29
              收起回复
                因为else有就近原则,离它最近的if和它有关系。


                来自Android客户端10楼2015-01-23 09:08
                收起回复
                  if else 没学好,回炉重造


                  IP属地:江苏11楼2015-01-23 09:24
                  收起回复
                    we're locked in time
                    but you're still mine
                    do you remember?


                    来自Android客户端12楼2015-01-23 09:28
                    回复
                      貌似java语言有覆盖性所以跟最后一个对上了


                      IP属地:浙江来自Android客户端13楼2015-01-23 09:44
                      回复