Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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_If Statement - Fatal编程技术网

Java 若非如此,石头布剪刀游戏

Java 若非如此,石头布剪刀游戏,java,if-statement,Java,If Statement,我不明白为什么我的程序终止了。例如,如果我声明用户输入为rock,它有时会声明其为tie或nothing发生/终止。我尝试在不同的类区域中运行它的各个部分,但是当我输入一个值时,它仍然不会输出我想要在if/else语句中得到的结果。 我知道计算机选择和用户输入代码是正确的。我相信我搞砸的是假想/假想。如果我错了,请纠正我 public static void main(String[] args) { Scanner keyboard = new Scanner(System.in);

我不明白为什么我的程序终止了。例如,如果我声明用户输入为rock,它有时会声明其为tie或nothing发生/终止。我尝试在不同的类区域中运行它的各个部分,但是当我输入一个值时,它仍然不会输出我想要在if/else语句中得到的结果。 我知道计算机选择和用户输入代码是正确的。我相信我搞砸的是假想/假想。如果我错了,请纠正我

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    int compVal = (int) (3*Math.random()) +1;
    char compChoice;
    if (compVal == 1) {
        compChoice = 'R';
    } else if (compVal == 2) {
        compChoice = 'P';
    } else {
        compChoice = 'S';
    }
    System.out.println("Rock, Paper, Scissors-Enter a choice R/P/S: ");
    String mine = keyboard.nextLine();
    char myChoice = mine.charAt(0);
    myChoice = Character.toUpperCase(myChoice);
    if (myChoice == (compChoice)) {
        System.out.println("We both chose the same item-try again");
    } else if (myChoice == ('R')) {
        if (compChoice == 'P') {
            System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
        }
    } else if (myChoice == ('R')) {
        if (compChoice == ('S')) {
            System.out.println("I chose Scissors and you choise Rock: Rock breaks Scissors, so you win");
        }
    } else if (myChoice == ('P')) {
        if (compChoice == ('S')) {
            System.out.println("I chose Scissors and you chose Paper: Scissors cuts Paper, so I win");
        }
    } else if (myChoice == ('P')) {
        if (compChoice == ('R')) {
            System.out.println("I chose Rock and you chose Paper: Paper covers Rock, so you win");
        }
    } else if (myChoice == ('S')) {
        if (compChoice == ('P')) {
            System.out.println("I chose Paper and you chose Scissors: Scissors cuts Paper, so you win");
        }
    } else if (myChoice == ('S')) {
        if (compChoice == ('R')) {
            System.out.println("I chose Rock and you chose Scissors: Rock breaks Scissors, so I win");
        }
    }
} 

您有多个永远无法执行的if/else语句

考虑一下这个代码

if (myChoice == ('R')) {
    if (compChoice == 'P') {
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    }
} else if (myChoice == ('R')) { // this will ONLY execute if the previous if statement is false.
每秒
if
子句无法执行,因为您已经检查了该条件。i、 e.选项不能是
R
,因为如果是,它将执行上一个块。最简单的解决方案是删除不需要的副本

} else if (myChoice == ('R')) {
    if (compChoice == 'P') {
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    }
    if (compChoice == ('S')) {
        System.out.println("I chose Scissors and you choise Rock: Rock breaks Scissors, so you win");
    }
甚至

} else if (myChoice == 'R') {
    if (compChoice == 'P') 
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    else
        System.out.println("I chose Scissors and you choise Rock: Rock breaks Scissors, so you win");
} else

您有多个永远无法执行的if/else语句

考虑一下这个代码

if (myChoice == ('R')) {
    if (compChoice == 'P') {
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    }
} else if (myChoice == ('R')) { // this will ONLY execute if the previous if statement is false.
每秒
if
子句无法执行,因为您已经检查了该条件。i、 e.选项不能是
R
,因为如果是,它将执行上一个块。最简单的解决方案是删除不需要的副本

} else if (myChoice == ('R')) {
    if (compChoice == 'P') {
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    }
    if (compChoice == ('S')) {
        System.out.println("I chose Scissors and you choise Rock: Rock breaks Scissors, so you win");
    }
甚至

} else if (myChoice == 'R') {
    if (compChoice == 'P') 
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    else
        System.out.println("I chose Scissors and you choise Rock: Rock breaks Scissors, so you win");
} else

您有多个永远无法执行的if/else语句

考虑一下这个代码

if (myChoice == ('R')) {
    if (compChoice == 'P') {
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    }
} else if (myChoice == ('R')) { // this will ONLY execute if the previous if statement is false.
每秒
if
子句无法执行,因为您已经检查了该条件。i、 e.选项不能是
R
,因为如果是,它将执行上一个块。最简单的解决方案是删除不需要的副本

} else if (myChoice == ('R')) {
    if (compChoice == 'P') {
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    }
    if (compChoice == ('S')) {
        System.out.println("I chose Scissors and you choise Rock: Rock breaks Scissors, so you win");
    }
甚至

} else if (myChoice == 'R') {
    if (compChoice == 'P') 
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    else
        System.out.println("I chose Scissors and you choise Rock: Rock breaks Scissors, so you win");
} else

您有多个永远无法执行的if/else语句

考虑一下这个代码

if (myChoice == ('R')) {
    if (compChoice == 'P') {
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    }
} else if (myChoice == ('R')) { // this will ONLY execute if the previous if statement is false.
每秒
if
子句无法执行,因为您已经检查了该条件。i、 e.选项不能是
R
,因为如果是,它将执行上一个块。最简单的解决方案是删除不需要的副本

} else if (myChoice == ('R')) {
    if (compChoice == 'P') {
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    }
    if (compChoice == ('S')) {
        System.out.println("I chose Scissors and you choise Rock: Rock breaks Scissors, so you win");
    }
甚至

} else if (myChoice == 'R') {
    if (compChoice == 'P') 
        System.out.println("I chose Paper and you chose Rock: Paper covers rock, so I win");
    else
        System.out.println("I chose Scissors and you choise Rock: Rock breaks Scissors, so you win");
} else

if(myChoice==('R')){…}else if(myChoice==('R'))
那么,如果它不是
R
而是
R
?!仔细看看你的代码,试着找出不同组合会发生什么。例如
R
S
(提示:没有)。您考虑过使用案例陈述吗?如果(myChoice==('R')){…}或者如果(myChoice==('R'))那么,如果它不是
R
而是
R
,它将大大简化您的代码?!仔细看看你的代码,试着找出不同组合会发生什么。例如
R
S
(提示:没有)。您考虑过使用案例陈述吗?如果(myChoice==('R')){…}或者如果(myChoice==('R'))那么,如果它不是
R
而是
R
,它将大大简化您的代码?!仔细看看你的代码,试着找出不同组合会发生什么。例如
R
S
(提示:没有)。您考虑过使用案例陈述吗?如果(myChoice==('R')){…}或者如果(myChoice==('R'))那么,如果它不是
R
而是
R
,它将大大简化您的代码?!仔细看看你的代码,试着找出不同组合会发生什么。例如
R
S
(提示:没有)。您考虑过使用案例陈述吗?这将把代码简化为一个挑战,您可以使用现有代码的一小部分编写它,您可以将main()方法的长度减半,然后再将其减半。;)我现在明白了…我想!因此,我不必重复“else-if”语句,因为第一个“if”语句是错误的?你还说我可以在什么地方重新创建这个源代码?10根绳子的长度?!是的,如果条件是您的问题,则重复进行。您可能总共不到20行就可以编写这个。作为一项挑战,您可以使用现有代码的一小部分编写它,您可以将main()方法的长度减半,然后再将其减半。;)我现在明白了…我想!因此,我不必重复“else-if”语句,因为第一个“if”语句是错误的?你还说我可以在什么地方重新创建这个源代码?10根绳子的长度?!是的,如果条件是您的问题,则重复进行。您可能总共不到20行就可以编写这个。作为一项挑战,您可以使用现有代码的一小部分编写它,您可以将main()方法的长度减半,然后再将其减半。;)我现在明白了…我想!因此,我不必重复“else-if”语句,因为第一个“if”语句是错误的?你还说我可以在什么地方重新创建这个源代码?10根绳子的长度?!是的,如果条件是您的问题,则重复进行。您可能总共不到20行就可以编写这个。作为一项挑战,您可以使用现有代码的一小部分编写它,您可以将main()方法的长度减半,然后再将其减半。;)我现在明白了…我想!因此,我不必重复“else-if”语句,因为第一个“if”语句是错误的?你还说我可以在什么地方重新创建这个源代码?10根绳子的长度?!是的,如果条件是您的问题,则重复进行。你可以用不到20行的篇幅来写这篇文章。