gpt4 book ai didi

java - 为什么我在 if 语句中定义 double 时遇到问题?

转载 作者:行者123 更新时间:2023-12-01 23:12:51 26 4
gpt4 key购买 nike

我的代码如下所示:

if (gasQuality==87){
double subtotal = unleaded * gallonsSold;
}else if (gasQuality==89){
double subtotal = unleadedPlus * gallonsSold;
}else if (gasQuality==91){
double subtotal = premium * gallonsSold;
}

但由于某种原因,编译器稍后将无法识别“小计”。例如,如果我想对代码下方的小计征税,编译器会读取:

cannot find symbol
symbol : variable subtotal
location: class Paniagua_Invoice
final double cityTax = .0375 * subtotal;

我做错了什么?

最佳答案

这是因为scoping 。变量存在于声明它们的 block 内(还有其他规则,因此您需要进一步阅读)。由于第一个 subTotal 是在 if block 中声明的(由 {} 分隔),因此您只能在该 block 内使用它。要解决此问题,您可以尝试在这些 if 语句之前声明 subtotal:

double subtotal = 0; // declaration and initialization

if (gasQuality==87) {
subtotal = unleaded * gallonsSold; // don't declare again
}
else if (gasQuality==89)
...

此外,您还可以使用 switch 语句来代替那些 if-else if 语句:

switch (gasQuality) {
case 87:
subtotal = ...;
break;
case 89:
subtotal = ...;
break;
default:
break;
}

关于java - 为什么我在 if 语句中定义 double 时遇到问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21651924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com