java 如何创建具有 3 个条件的 if 语句?(爪哇)

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/39422667/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 04:21:50  来源:igfitidea点击:

How can I create an if statement with 3 conditions? (Java)

javaif-statement

提问by

I just started learning java a week ago. I am taking a class at my school. I am trying to create a quiz and I can't figure out how to print out the score. The quiz has three possibilities 3/3, 2/3, 1/3. The problem I am having is with the if statements near the end of the program.

我一周前才开始学习java。我正在我的学校上课。我正在尝试创建一个测验,但我不知道如何打印分数。测验有 3/3、2/3、1/3 三种可能性。我遇到的问题是程序末尾的 if 语句。

import java.io.*;
import static java.lang.System.*;

import java.util.Scanner;

class t1_lesson03_template{


     public static void main (String str[]) throws IOException {

       Scanner scan = new Scanner(System.in);

       System.out.println("1. What do you type at the begining of a comment?");
       String answer1 = "//";
       String userinput1 = scan.nextLine();

       if (userinput1.equals(answer1)) {
          System.out.println(" Correct!");
       }
       if (!userinput1.equals(answer1)) {
       System.out.println(" Wrong!");
       }
       String answer2 = ("(int)");

       System.out.println("2. What do you type before a double to convert to an int?");
       String userinput2 = scan.nextLine();
       if (userinput2.equals(answer2)) {
         System.out.println(" Correct!");
       }
       if (!userinput2.equals(answer2)) {
         System.out.println(" Wrong!");
       }
       String answer3 = ("int number = 5;");

       System.out.println("3. Create an int called \"number\", and make it equal 5.");
       String userinput3 = scan.nextLine();
       if (userinput3.equals(answer3)) {
         System.out.println(" Correct!");
       }
       if (!userinput3.equals(answer3)) {
        System.out.println(" Wrong!"); 
       }
       if (userinput1.equals(answer1)  && userinput2.equals(answer2)  && userinput3.equals(answer3)) {
         System.out.println("3/3 Awesome!");
       }
       else if (userinput1.equals(answer1) || userinput2.equals(answer2) || userinput3.equals(answer3)) {
         System.out.println("2/3 Good job.");
       }   
       else {
         System.out.println("1/3 Try again.");
       }   

     }

}

采纳答案by Elliott Frisch

This,

这,

else if (userinput1.equals(answer1) || userinput2.equals(answer2) 
    || userinput3.equals(answer3)) {

should be something like

应该是这样的

else if ((userinput1.equals(answer1) && userinput2.equals(answer2)) ||
         (userinput1.equals(answer1) && userinput3.equals(answer3)) ||
         (userinput2.equals(answer2) && userinput3.equals(answer3))) {

butI would prefer a count. And an array to display your different messages. Something like

我更喜欢count. 还有一个数组来显示您的不同消息。就像是

int count = 0;
if (userinput1.equals(answer1)) {
    count++;
}
if (userinput2.equals(answer2)) {
    count++;
}
if (userinput3.equals(answer3)) {
    count++;
}
String[] result = { "0/3 None", "1/3 Try Again.", "2/3 Good Job.", "3/3 Awesome!" };
System.out.println(result[count]);

回答by user8967241

Just add braces before each condition in if class and else if such as

只需在 if 类和 else if 中的每个条件之前添加大括号,例如

if ((userinput1.equals(answer1))  && (userinput2.equals(answer2))  && (userinput3.equals(answer3))) {
    System.out.println("3/3 Awesome!");
}
else if ((userinput1.equals(answer1)) || (userinput2.equals(answer2)) || (userinput3.equals(answer3))) {
    System.out.println("2/3 Good job.");
}