[英]Random Numbers Not Printing Out
我在這里有一個奇怪的問題。 不知道是什么原因。 我正在用Java編寫語音演示,並且正在編寫一些簡單的程序。 由於某種原因,在使用剪刀石頭布程序時,它並不總是希望返回我的隨機數。 我的起始代碼如下,我想說的是,每3次就有一個,它實際上會打印出一個數字。
Random rand = new Random();
int randomNum = rand.nextInt(3) + 1;
System.out.println(randomNum);
就像我說的那樣,代碼非常簡單,但是我不知道為什么有時只打印數字...
編輯:整個項目
主要導入java.util.Scanner;
public class Speech_Main {
public static void main(String[] args) {
boolean running = true;
Scanner in = new Scanner(System.in);
while(running){
if(in.next().equalsIgnoreCase("exit")){
running = false;
}
if(in.next().equalsIgnoreCase("Hello_World")){
Hello_World.start();
}
if(in.next().equalsIgnoreCase("rps")){
Rock_Paper_Scissors.start();
}
}
in.close();
return;
}
}
RPS
import java.util.Random;
public class Rock_Paper_Scissors {
public static void start(){
System.out.println(random());
}
private static int random(){
Random rand = new Random();
int randomNum = rand.nextInt() + 1;
return randomNum;
}
}
問題在於,每次循環中,您都會調用in.next()
3次:
while(running){
if(in.next().equalsIgnoreCase("exit")){
running = false;
}
if(in.next().equalsIgnoreCase("Hello_World")){
Hello_World.start();
}
if(in.next().equalsIgnoreCase("rps")){
Rock_Paper_Scissors.start();
}
}
當到達第一個if
,調用in.next()
,它從掃描器獲取下一個令牌。 問題是當到達第二個if
,它將再次調用in.next()
,然后它將嘗試獲取另一個令牌。 它不使用前一個,因為您已經告訴它要換一個新的。 要解決此問題,請在循環開始時聲明一個變量以保存in.next()
:
String input = in.next();
然后檢查變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.