我正在尝试创建一个简单的彩票游戏:
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Random gen = new Random();
Scanner scan = new Scanner(System.in);
System.out.println("Enter desired numbers to be drawn");
int print = scan.nextInt();
System.out.println("Enter desired numbers on dice");
int dice = scan.nextInt();
System.out.println("Enter your lucky numbers");
for(int i=1; i<=print;i++){
int num = scan.nextInt();
}
int randnum;
if (randnum == num){
System.out.println("Winner winner chicken dinner!");
}
for(int counter=1; counter<=print;counter++){
randnum = 1+gen.nextInt(dice);
System.out.println(randnum + " ");
}
}
}
问题是 int num 无法解析为if循环中的变量。 感谢
答案 0 :(得分:1)
只需在循环之前声明int num
即可。您需要对其进行初始化,以便在循环体未执行时明确分配:
int num = 0;
for(int i=1; i<=print;i++){
num = scan.nextInt();
}
但是,您似乎正在尝试收集多个号码。你的循环读取print
个数字,只记得最后一个。您可以考虑创建一个数组:
int[] numbers = new int[print];
for(int i=0; i<print;i++){
numbers[i] = scan.nextInt();
}
答案 1 :(得分:0)
只需将int num
放在循环之前,并在循环内部分配值
int num = 0;
for(int i=1; i<=print;i++) {
num = scan.nextInt();
}
希望这有帮助
答案 2 :(得分:0)
您已在num
的范围内声明for loop
,因此无法在for loop
之外访问该if(randum == num)
。看一下java范围......你也可能想把你的dplyr
移到第二个for循环之后,因为那时randum还没有被初始化......