对两个不同的循环使用相同的int

时间:2015-05-19 18:48:52

标签: java loops

我正在尝试创建一个简单的彩票游戏:

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循环中的变量。 感谢

3 个答案:

答案 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还没有被初始化......