-2

我是 java 新手,我目前正在做本学期的期末项目(CS 专业),我遇到了“变量可能没有被初始化”错误。我在网站上尝试了其他修复,但每当我这样做时,它都会使用初始化变量,而不是我在循环中定义的变量。

public static void main(String[] args) {
    double priceperpound       = 2;    // price per pound of coffee
    int numberofbags           = 2;    // number of pounds of coffee
    double bagweightinpounds   = 1;    // weight of the bag in punds
//  double pricebeforetaxes    = 8;    // total before taxes
//  double totalpricewithtaxes = 0;    // total price
    double taxrate             = .065; // whats the tax?
    double TotalWeight         = 0;    // total weight of purchase
//  double discountprice       = 0;    // discounted price
//  double discount            = .9;   // if you qualify the price before taxes will be     multiplied by this
    int row;
    int col;

    PriceCalculator calculations = new PriceCalculator(priceperpound, numberofbags,
            bagweightinpounds, taxrate);

    for (bagweightinpounds = 1; bagweightinpounds <= 5; bagweightinpounds = bagweightinpounds + 1) {

        for (numberofbags = 2; numberofbags <= 1024; numberofbags = numberofbags * 2) 
        {
            System.out.printf("%f", calculations.getBasePrice());
        }
    }
    Scanner input = new Scanner(System.in);
}
4

2 回答 2

0

就像这样.........

  • 在 java 中,当我们在 Class 范围内声明一个变量(实例变量)时,它会自动分配其默认值。

  • 但是当我们在方法范围内声明一个变量(局部变量)时,它必须在使用之前进行初始化。

所以在你的情况下这样做:

整数行=0;

int col = 0;

请原谅我的代码格式,我在手机上......

于 2012-12-16T16:33:44.337 回答
0

如果你声明一个变量并且没有给它默认值(例如):

int row;

如果您尝试在表达式中使用它的值:

row = row + 1;

然后编译器会抛出一个错误。找到错误所在的行并分析变量。

更新:在循环中初始化的唯一变量是在for循环中,在第一条语句中(vgfor(int i = 0; i < 5; i++)初始化i变量)。

于 2012-12-16T16:10:27.513 回答