Mar*_*rne 1 java random generator
无法弄清楚为什么我的代码只在我需要一个字符串时返回一个Int,并且帮助会很棒.代码如下.我尝试将变量声明为String而没有运气.
我想要返回3个随机字符串:樱桃,葡萄,铃铛或x
import java.util.Scanner;
import java.util.Random;
public class slot {
public static void main(String[] args)
{
String answer = "y";
int cherry;
int grape;
int bell;
int x;
Random generator = new Random(); // random generator
Scanner scan = new Scanner (System.in); // scanner class
System.out.println("Would you like to play the slot machine?(y/n): ");
answer = scan.nextLine();
while(answer.equalsIgnoreCase("y"))
{
cherry = generator.nextInt(5); // generates a random number
grape = generator.nextInt(5);
bell = generator.nextInt(5);
System.out.println("The three numbers of the slot machine are: " + cherry +grape +bell);
if(cherry == grape && grape == bell)
{
System.out.println("JACKPOT! All three of the same");
}
if(cherry == grape || cherry == bell || grape == bell )
{
System.out.println("Close, you got two of the same!!");
}
else
{
System.out.println("Not a winner");
}
System.out.print("Try again?(y/n): ");
answer = scan.nextLine();
System.out.println();
}
System.out.println("Bye!!");
}
}
Run Code Online (Sandbox Code Playgroud)
我会像这样制定它:
// The different results each "wheel" / "column" on the slot machine.
String[] results = { "cherry", "bell", "grape", "x" };
// Create a random result for each wheel.
String wheel1 = results[generator.nextInt(results.length)];
String wheel2 = results[generator.nextInt(results.length)];
String wheel3 = results[generator.nextInt(results.length)];
Run Code Online (Sandbox Code Playgroud)
然后继续你的if陈述.(但是要做else if第二和第三个陈述).
if (wheel1 == wheel2 && wheel2 == wheel3) {
// jackpot
} else if (wheel1 == wheel2 || wheel2 == wheel3 || wheel1 == wheel3) {
// two equal
} else {
// all three different.
}
Run Code Online (Sandbox Code Playgroud)
如果你想深入了解这门语言,我建议你研究一下enum.
(请注意,比较使用的字符串==是10个中的9个案例中的一个坏主意.但是,我们不需要费心去比较字符串内容,但可以通过比较参考值来逃避.)