【问题标题】:RuntimeException: Uncompilable source code - cannot find symbolRuntimeException:无法编译的源代码 - 找不到符号
【发布时间】:2015-02-28 10:16:28
【问题描述】:

我是 Java 新手,正在编写一个程序来打印 6 个随机数的彩票。我收到一个错误,

-线程“主”java.lang.RuntimeException 中的异常:无法编译的源代码-找不到符号 - 符号:可变数字 - 地点:乐透班.Lottery - 在 lotto.Lottery.printNumbers(Lottery.java:52) - 在 lotto.Lottery.main(Lottery.java:34) -Java 结果:1

import java.util.Random;
import java.util.ArrayList;

public class Lottery {

    static ArrayList<Integer> lottoNumbers = new ArrayList<Integer>();
    static int MAX_NUMBERS = 6;

    public static void main(String[] args)
    {
        generateNumbers();
        printNumbers();
    }

    private static void generateNumbers()
    {
        int ticketNumber;
        Random generateRandomNumber = new Random();

        for (int count = 0; count < MAX_NUMBERS; count++)
        {
            ticketNumber = 1 + generateRandomNumber.nextInt(59);
            lottoNumbers.add(new Integer(ticketNumber));
        }
    }

    private static void printNumbers()
    {
        int count = 0;
        for( Integer number : numbers )  
        {
           if (count < 5)
               if (count == 4)
                   System.out.print(number);
               else
                    System.out.print(number + ", ");
           else
           {
               System.out.println("\nPower Ball: " + number);
               count++;
           }
        }
    }
}

【问题讨论】:

  • 啊,这么简单的事情,所以我修复了它,它消除了错误,但它仍然不会打印“Power Ball:”行。当我希望它看起来像 "55, 31, 57, 46, 20 Power Ball: 24" 时,输出看起来像 "15, 52, 44, 54, 23, 22"
  • 如果您解决了您的问题..您可以发布您的解决方案作为您自己问题的答案..

标签: java


【解决方案1】:

您的代码存在编译错误,因此程序无法运行:变量numbers 未在任何地方定义。如果要循环生成的数字,请使用由generateNumbers 方法填充的lottoNumbers。您还应该在打印每个元素后增加 count++(我强烈建议您始终在 if 语句之后使用大括号以避免错误):

int count = 0;
for (Integer number : lottoNumbers) {
    if (count < 5) {
        if (count == 4) {
            System.out.print(number);
        } else {
            System.out.print(number + ", ");
        }
    } else {
        System.out.println("\nPower Ball: " + number);
    }
    count++;
}

【讨论】:

  • 呃,这么简单的事情,所以我修复了它,它消除了错误,但它仍然不会打印“Power Ball:”行。当我希望它看起来像 "55, 31, 57, 46, 20 Power Ball: 24" 时,输出看起来像 "15, 52, 44, 54, 23, 22"
  • @user4617245 打印元素时您没有增加count。请参阅我的更新答案。
  • 没关系,我想出了那部分,只需要删除一些括号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 2020-06-16
  • 2016-05-08
  • 2021-02-21
  • 2013-05-22
相关资源
最近更新 更多