Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在尝试打印并获取:“;无法解析为变量";错误_Java - Fatal编程技术网

Java 正在尝试打印并获取:“;无法解析为变量";错误

Java 正在尝试打印并获取:“;无法解析为变量";错误,java,Java,我无法理解以下代码中的原因: 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 (

我无法理解以下代码中的原因:

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
。在编译时,编译器不知道这两条if语句中的哪一条肯定会计算

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]);
int peaktimeWage = 0; // Have a default value in case it doesn't get set
if (starttimeHours >=6 && starttimeHours <=9 )
{
     peaktimeWage = 4;
}
else if (starttimeHours >=1 && starttimeHours <=5 )
{
     peaktimeWage = 2;
}
else
{
     int peaktimeFare = 3;
}
System.out.println(peaktimeWage); 
System.out.println(“输入开始时间”);
字符串startTime=console.nextLine();
String[]tokens=startTime.split(“:”);
double starttimehurs=double.parseDouble(令牌[0]);
double pickupments=double.parseDouble(令牌[1]);
int peaktimeWage=0;//设置一个默认值,以防未设置

如果(starttimehurs>=6&&starttimehurs=1&&starttimehurs未在环境中定义,它在
if
子句中定义(因此此变量的范围仅在
if
else if
中),因此一旦执行完
if
,它就不存在了

顺便说一下,您缺少两个结束括号
}

将代码更改为:

int peaktimeWage = 0;
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 ){
 peaktimeWage = 4;}
 else if  (starttimeHours >=1 && starttimeHours <=5 ){
  peaktimeWage = 2;}

 else {int peaktimeFare = 3;}
{
  System.out.println(peaktimeWage);
}
int peaktimeWage=0;
System.out.println(“输入开始时间”);
字符串startTime=console.nextLine();
String[]tokens=startTime.split(“:”);
double starttimehurs=double.parseDouble(令牌[0]);
double pickupments=double.parseDouble(令牌[1]);
{

如果(starttimeHours>=6&&starttimeHours=1&&starttimeHours,
peaktimeWage
的范围仅限于您的
if
else
。请在
if else
之外添加它

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

如果(starttimehurs>=6&&starttimehurs=1&&starttimehurs变量范围不正确

换衣服

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

if(starttimehurs>=6&&starttimehurs=1&&starttimehurs=6&&starttimehurs=1&&starttimehurs这与所讨论的变量的范围有关。这是您编写的:

if (starttimeHours >=6 && starttimeHours <=9 ){
 int peaktimeWage = 4;
}

if(starttimehurs>=6&&starttimehurspeaktimeWage正在if块内声明。
这意味着它将在if块结束时超出作用域,并由垃圾收集器清理

相反,尝试

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]);
{    
int peaktimeWage = 0;
int peaktimeFare = 0;
 if (starttimeHours >=6 && starttimeHours <=9 ){
 peaktimeWage = 4;}
 else if  (starttimeHours >=1 && starttimeHours <=5 ){
  peaktimeWage = 2;}

else {peaktimeFare = 3;}{
  System.out.println(peaktimeWage);
System.out.println(“输入开始时间”);
字符串startTime=console.nextLine();
String[]tokens=startTime.split(“:”);
double starttimehurs=double.parseDouble(令牌[0]);
double pickupments=double.parseDouble(令牌[1]);
{    
int峰值时间工资=0;
int-peaktimeFare=0;

if(starttimeHours>=6&&starttimeHours=1&&starttimeHours ok Wires77,谢谢。我想它是在if-else块中找到的,因为我写它时它没有抱怨。当你用大括号把东西围起来时,生活会简单得多。
{}
if (starttimeHours >=6 && starttimeHours <=9 ){
 int peaktimeWage = 4;
}
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]);
{    
int peaktimeWage = 0;
int peaktimeFare = 0;
 if (starttimeHours >=6 && starttimeHours <=9 ){
 peaktimeWage = 4;}
 else if  (starttimeHours >=1 && starttimeHours <=5 ){
  peaktimeWage = 2;}

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