-1
import java.util.Random;
import java.util.Scanner;

public class Boolean {
public static void main(String[] args){
    String zz;


    Scanner keyboard = new Scanner(System.in);

    Random r1 = new Random();
    Random r2 = new Random();
    Random greatless = new Random();

    int x = r1.nextInt(10) + 1;

    int y = r2.nextInt(10) + 1;

    int z = greatless.nextInt(2) + 1;

    if (z == 2)
    {
         zz = "<";
    }

    else
    {
         zz = ">";
    }

    System.out.println("Is " + x + " " + zz + " " + y + "? (y/n)");
    String ans = keyboard.nextLine();






}
}

我不知道键盘输入后该写什么。我想通过使用布尔类来告诉他们是对还是错......所以我想要一个 if else 之后。我想像...

if (ans.equalsIgnoreCase("y")
{
   -insert code-
}

else
{
  - insert code-
}
4

4 回答 4

0

您真的不需要使事情变得复杂或考虑大量案例组合。如果正确答案为 Yes 且正确答案为 No,则声明 a。在设置为“<”的块中boolean correctAnswer,设置为,因为这是正确答案。用户输入答案后,您可以比较它以查看它是否正确。那时您无需担心或不再担心,因为您已经弄清楚了它是什么。我会让你解决剩下的细节。truefalsezzcorrectAnswerx < ycorrectAnswerxycorrectAnswer

于 2013-08-29T01:48:18.830 回答
0

嵌套if-else块可以帮助您应对所有不同的可能性。这个想法是将检查分解为多个步骤,并确定应该首先检查什么,然后再检查什么。评论应该可以帮助您遵循流程。

// if the test is for ">", and
if (z == 1) {
    // x really is > y and user said yes
    if ((x > y && ans.equalsIgnoreCase("y"))
            // Or, x is < y and user said no
            || (x < y && ans.equalsIgnoreCase("n")))
        System.out.println("Yes, you're correct");
    else // user is wrong
        System.out.println("No, you're incorrect");
// if the test is for "<", and
} else {
    // x really is < y and user said yes
    if ((x < y && ans.equalsIgnoreCase("y"))
            // Or, x is > y and user said no
            || (x > y && ans.equalsIgnoreCase("n")))
        System.out.println("Yes, you're correct");
    else // user is wrong
        System.out.println("No, you're incorrect");
}
于 2013-08-29T01:33:07.290 回答
0

逻辑是:

  • 如果 x < y,并且 z == 2 并且 ans 是“y”,那么它是正确的
  • 如果 x < y,并且 z == 2 并且 ans 是“n”,那么它是不正确的
  • 如果 x < y,并且 z == 1 并且 ans 是“y”,那么它是不正确的

等等

努力完成。

于 2013-08-29T01:10:04.263 回答
0
enter code here
String trueAns = (x>y&&z==1)||(x<y&z==2)?"y":"n";

if(ans.equalsIgnoreCase(trueAns)){
    System.out.println("right!");
}else{
    System.out.println("worng!");
}
于 2013-08-29T02:59:17.327 回答