Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的代码不能正常工作?_Java - Fatal编程技术网

Java 为什么我的代码不能正常工作?

Java 为什么我的代码不能正常工作?,java,Java,我对编码有点陌生。所以,我想知道为什么我的代码不能正常工作?如果您运行代码,它会询问您正确的值,然后打印您是否正确。但它也会打印出“else”语句 package MyFirstProject; import java.util.Scanner; public class MyFirstProject { public static void main(String[] args) { int answer; Scanner scanner = new

我对编码有点陌生。所以,我想知道为什么我的代码不能正常工作?如果您运行代码,它会询问您正确的值,然后打印您是否正确。但它也会打印出“else”语句

package MyFirstProject;
import java.util.Scanner;

public class MyFirstProject {

    public static void main(String[] args) {
        int answer;
        Scanner scanner = new Scanner(System.in);
        System.out.println("What is 5 + 5");
        answer = scanner.nextInt();

        if(answer == 10){
            System.out.println("You are correct!");
        }if(answer == 9){
            System.out.println("You were close! Try again!");
        }if(answer == 11){
            System.out.println("You were close! Try again!");
        }
        else{
            System.out.println("You are wrong! Try again!");
        }

    }
}

问题在于if语句。Else与最后一个if语句连接。每当应答值不是“11”时,它都会触发。您需要使用“else if”,如下所示

 if(answer == 10){
        System.out.println("You are correct!");
    }else if(answer == 9){
        System.out.println("You were close! Try again!");
    }else if(answer == 11){
        System.out.println("You were close! Try again!");
    }
    else{
        System.out.println("You are wrong! Try again!");
    }

问题在于if语句。Else与最后一个if语句连接。每当应答值不是“11”时,它都会触发。您需要使用“else if”,如下所示

 if(answer == 10){
        System.out.println("You are correct!");
    }else if(answer == 9){
        System.out.println("You were close! Try again!");
    }else if(answer == 11){
        System.out.println("You were close! Try again!");
    }
    else{
        System.out.println("You are wrong! Try again!");
    }

使用else

public static void main(String[] args) {
    int answer;
    Scanner scanner = new Scanner(System.in);
    System.out.println("What is 5 + 5");
    answer = scanner.nextInt();

    if(answer == 10){
        System.out.println("You are correct!");
    }else if(answer == 9){
        System.out.println("You were close! Try again!");
    }else if(answer == 11){
        System.out.println("You were close! Try again!");
    }
    else{
        System.out.println("You are wrong! Try again!");
    }


}

使用else

public static void main(String[] args) {
    int answer;
    Scanner scanner = new Scanner(System.in);
    System.out.println("What is 5 + 5");
    answer = scanner.nextInt();

    if(answer == 10){
        System.out.println("You are correct!");
    }else if(answer == 9){
        System.out.println("You were close! Try again!");
    }else if(answer == 11){
        System.out.println("You were close! Try again!");
    }
    else{
        System.out.println("You are wrong! Try again!");
    }


}

原因是在第二和第三个IF之前,您缺少了其他IF

if(answer == 10){
    System.out.println("You are correct!");
}else if(answer == 9){
    System.out.println("You were close! Try again!");
}else if(answer == 11){
    System.out.println("You were close! Try again!");
}
else{
    System.out.println("You are wrong! Try again!");
}

在你的情况下,第三个IF不是真的,所以else被执行。使用“我的修复”和10作为输入值,第一个IF将为true,然后所有剩余的IF将不会执行。

原因是在第二个IF和第三个IF之前缺少其他IF

if(answer == 10){
    System.out.println("You are correct!");
}else if(answer == 9){
    System.out.println("You were close! Try again!");
}else if(answer == 11){
    System.out.println("You were close! Try again!");
}
else{
    System.out.println("You are wrong! Try again!");
}

在你的情况下,第三个IF不是真的,所以else被执行。使用my fix和10作为输入值,首先IF将为true,然后将不执行所有剩余值。

如果:

    if(answer == 10){
        System.out.println("You are correct!");
    } else if(answer == 9){
        System.out.println("You were close! Try again!");
    } else if(answer == 11){
        System.out.println("You were close! Try again!");
    } else{
        System.out.println("You are wrong! Try again!");
    }
在您的示例中,else与最后一个if语句匹配,因此它不是“最后的选择”。您需要将所有的if都抓取到一个链中,以便else将匹配所有非if匹配的情况

或使用开关:

switch(answer):
   case 10:
      System.out.println("You are correct!");
      break;
   case 9:
   case 11:
        System.out.println("You were close! Try again!");
        break;
   default:
        System.out.println("You are wrong! Try again!");

在以下情况下,您需要将if替换为else:

    if(answer == 10){
        System.out.println("You are correct!");
    } else if(answer == 9){
        System.out.println("You were close! Try again!");
    } else if(answer == 11){
        System.out.println("You were close! Try again!");
    } else{
        System.out.println("You are wrong! Try again!");
    }
在您的示例中,else与最后一个if语句匹配,因此它不是“最后的选择”。您需要将所有的if都抓取到一个链中,以便else将匹配所有非if匹配的情况

或使用开关:

switch(answer):
   case 10:
      System.out.println("You are correct!");
      break;
   case 9:
   case 11:
        System.out.println("You were close! Try again!");
        break;
   default:
        System.out.println("You are wrong! Try again!");

原因是,例如

answer == 10 // YES - It'll print "You are correct!"
answer == 9 // No - Skip to the next If block
answer == 11? // No - skip to the else and print "You are wrong! Try again!"
因此,确保它只检查一个块并打印正确消息的正确方法是:

if(answer == 10){
    System.out.println("You are correct!");
} else if(answer == 9){
    System.out.println("You were close! Try again!");
} else if(answer == 11){
    System.out.println("You were close! Try again!");
} else{
    System.out.println("You are wrong! Try again!");
}

原因是,例如

answer == 10 // YES - It'll print "You are correct!"
answer == 9 // No - Skip to the next If block
answer == 11? // No - skip to the else and print "You are wrong! Try again!"
因此,确保它只检查一个块并打印正确消息的正确方法是:

if(answer == 10){
    System.out.println("You are correct!");
} else if(answer == 9){
    System.out.println("You were close! Try again!");
} else if(answer == 11){
    System.out.println("You were close! Try again!");
} else{
    System.out.println("You are wrong! Try again!");
}

在每个
if
之后都需要
else
s,而不仅仅是最后一个。如果(…)像switch语句一样构造它,则缺少一堆
else。是的,否则的话,如果是你想要的。也就是说,我们通常在像Bignerdranch这样的对noobie友好的网站上看到类似的情况。请注意,您需要
else
s的唯一原因是最后的大毯子
else
。没有它们也没关系,因为答案不会重叠。你需要在每个
if
之后加上
else
s,而不仅仅是最后一个。如果(…)
你像switch语句一样构造它,你就缺少了一堆
else。是的,否则的话,如果是你想要的。也就是说,我们通常在像Bignerdranch这样的对noobie友好的网站上看到类似的情况。请注意,您需要
else
s的唯一原因是最后的大毯子
else
。没有它们也没关系,因为答案没有重叠。