如何根据用户输入和随机选择的选项打印一行
How to print a line based on user input and randomly selected choices
我正在为我的第一个 java class 编写代码。它的石头剪刀布(蜥蜴spock)。该程序运行完美,允许计算机输入和输出随机选择。但是,我希望程序在情况合适时说出 "its at tie" 或 "you win" 之类的内容。到目前为止,我还没有得到这个。我让它对错误的情况说 "its a tie" 一次,而且只有一次无法复制它。我的代码是:
导入java.util.*;
class摇滚{
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" );
}
}
我现在只有一个输出,但一旦我明白该怎么做,我会为每种情况添加一个。
非常感谢任何帮助!谢谢!
多个可能对您有帮助的详细信息:
您需要使用 && 而不是 & 来测试逻辑与
惯例是 class 名称以大写开头:Rock
您正在调用 nextInt() 两次,它可能会 return 两个不同的值。如果你想要相同的,你应该调用它一次并将它存储在一个变量中。
您需要使用 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" 之类的内容,那么大写不会弄乱任何内容。
我正在为我的第一个 java class 编写代码。它的石头剪刀布(蜥蜴spock)。该程序运行完美,允许计算机输入和输出随机选择。但是,我希望程序在情况合适时说出 "its at tie" 或 "you win" 之类的内容。到目前为止,我还没有得到这个。我让它对错误的情况说 "its a tie" 一次,而且只有一次无法复制它。我的代码是:
导入java.util.*;
class摇滚{ 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" );
}
}
我现在只有一个输出,但一旦我明白该怎么做,我会为每种情况添加一个。
非常感谢任何帮助!谢谢!
多个可能对您有帮助的详细信息:
您需要使用 && 而不是 & 来测试逻辑与
惯例是 class 名称以大写开头:Rock
您正在调用 nextInt() 两次,它可能会 return 两个不同的值。如果你想要相同的,你应该调用它一次并将它存储在一个变量中。
您需要使用 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" 之类的内容,那么大写不会弄乱任何内容。