【问题标题】:Variable declaration not allowed here, used in if statement [duplicate]此处不允许使用变量声明,在 if 语句中使用 [重复]
【发布时间】:2017-07-24 21:13:26
【问题描述】:

在输入 if 语句的第一部分后,我打算使用下一行来声明一个变量 (costPerCD),但我被告知“此处不允许使用变量声明”。如果不使用这种方法,我不确定如何计算 costPerCD。这是我正在尝试做的一个例子。任何帮助将不胜感激。

    if ((numCDs>=1 && (numCDs<=4))
    double costPerCD= 20.99;

【问题讨论】:

  • 服务于什么目的?该变量仅在 if 块中可见,在其他任何地方均不可见。
  • @HovercraftFullOfEels 我在其他地方使用它,代码很长,如果您愿意,我仍然可以发布所有内容,但这与问题无关。
  • 但是你没看到 - 如果你在其他地方声明它,你不能在其他地方使用它。了解变量范围以了解原因。然后在该块之前声明变量。
  • @HovercraftFullOfEels 不,我没看到。
  • 再次读取变量范围。您正在声明它:if (foo) {double bar = 1.0;}。 bar 变量仅在 {} 花括号内可见。你没有大括号,但那一行是它自己的代码块,就像你用花括号括起来一样。阅读有关范围的教程。现在。你不会后悔的。

标签: java


【解决方案1】:

您应该将该变量声明为类变量。然后,您可以在整个班级中访问该变量。

您需要在您的第一个条件之后向您的代码添加一个额外的“)”。这应该可以防止您遇到错误。

public class CDCal {
    //Class Variable can be accessed in this class
    private costPerCD;

    public CDCal(){
        //Assign value when object created
        costPerCD = 20.99
    }

    public double calculateCost(int numCDs){
        double total = 0;
        if((numCDs >= 1) && (numCDs <= 4))
        {
            //Calculate total cost of CD's based on number and price
            total = costPerCD * numCDs;
        }
        //Return the total at the end of the method.
        Return total;

}

如果您有示例,我很乐意对其进行审核以帮助您。

【讨论】:

  • 没关系。它确实有效。我只是有一个不同的错误。 :(...
  • 错误是什么?
猜你喜欢
  • 2015-09-22
  • 1970-01-01
  • 2020-04-14
  • 2014-08-26
  • 1970-01-01
  • 2015-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多