我不明白为什么在以下代码中:

System.out.println("Enter start time");
String startTime = console.nextLine();
String [] tokens = startTime.split(":");
double starttimeHours = Double.parseDouble(tokens[0]);
double pickupMinutes = Double.parseDouble(tokens[1]);{
 if (starttimeHours >=6 && starttimeHours <=9 ){
 int peaktimeWage = 4;}
 else if  (starttimeHours >=1 && starttimeHours <=5 ){
  int peaktimeWage = 2;}

else {int peaktimeFare = 3;}{
  System.out.println(peaktimeWage);


我不断收到错误“ peaktimeWage无法解析为变量”。在代码的最后一行是:

  System.out.println(peaktimeWage);


因为它是先前定义的变量,所以甚至在该变量旁边说不使用该变量。在打印输出时,我检查了是否以与以前的代码相同的方式编写了它。所以我不知道问题是什么。有人知道吗

最佳答案

peaktimeWage的范围仅限于您的ifelse。在if else之外声明

int peaktimeWage = -1;
if (starttimeHours >=6 && starttimeHours <=9 ){
    peaktimeWage = 4;
} else if  (starttimeHours >=1 && starttimeHours <=5 ){
    peaktimeWage = 2;
}

关于java - 尝试打印并获取:“无法解析为变量”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12488449/

10-12 22:28