如何根据用户输入和随机选择的选项打印一行

时间:2015-04-09 21:59:55

标签: java output user-input

我正在为我的第一个java课程编写代码。它的岩石剪刀(蜥蜴spock)。该程序运行良好,允许输入和输出计算机随机选择。但是,我希望这个程序可以说"它在领带"或者"你赢了"当情况是对的。到目前为止,我还没有能够得到这个。我曾经说过"它是一个领带"一次错误的情况,只有一次不能复制它。我的代码是:

import java.util。*;

class rock {     public static void main(String args []){

    System.out.println( "rock, paper, scissors, lizard, or spock?" );
    Scanner user_input = new Scanner ( System.in );
    String guess;
    guess = user_input.next( );

    String [ ] comp;
        comp = new String [ 5 ];
        comp[ 0 ] = "Rock";
        comp[ 1 ] = "Paper";
        comp[ 2 ] = "Scissors";
        comp[ 3 ] = "Lizard";
        comp[ 4 ] = "Spock";

        Random hi;
        hi = new Random( );
        System.out.println( "::" + guess +
            ":: vs ::" + comp[ hi.nextInt( 5 ) ] + "::") ;

            if (guess.equals( "rock" ) & comp[ hi.nextInt( 5 ) ].equals(1) ) System.out.println( "Its a tie" );

}

}

我现在只有一个输出,但是一旦我明白该怎么做,我会为每种情况添加一个。

非常感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:0)

可能对您有所帮助的多个详细信息:

你需要使用&&而不是&测试逻辑AND

惯例是类名以Caps:Rock

开头

您正在调用nextInt()两次,它可能会返回两个不同的值。如果你想要相同,你应该调用它一次并将其存储在变量中。

答案 1 :(得分:0)

您需要使用if else语句检查每个方案。 小心不要进行任何多余的检查。

示例:

String compChoice = comp[hi.nextInt(5)];
if (guess.equalsIgnoreCase( compChoice )) { 
System.out.println("its a tie!");
}
else if(guess.equalsIgnoreCase( "rock" ) && compChoice.equals("paper")){
System.out.println("You lose");
}

等等。

我还建议你改变你的:

if (guess.equals( "rock" )

要:

If (guess.equalsIgnoreCase( "rock" )

如果用户确实输入了类似" roCK"资本化并没有搞砸任何事情。