-1

每当我尝试使用 else 语句时,我都会不断收到错误消息:令牌“else”上的语法错误,请删除此令牌。这很烦人,因为我已经尝试按照我在大约 5 个不同示例中看到的完全复制它。而且我仍然无法在没有错误的情况下编写带有 else 条件的行。我认为从更大的角度来看,我做错了一定是因为我无法在任何地方成功地编写它!下面是我正在编译并想要使用它的实际代码。

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

谢谢大家,if else 语句现在有效。我已将代码更改为:

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

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

  }}}}

现在我遇到的问题是代码的最后一行: System.out.println(peaktimeWages);

它一直说 peaktimeWages 无法解析为变量,但我并没有尝试将其解析为变量,我只是想将其打印出来。所以这个消息对我来说似乎是错误的。我也以与 System.out.println(peaktimeWages); 相同的方式打印了以前的代码。

只是跟变量不同,所以不知道为什么不接受。我认为问题必须来自上一段代码。

4

5 回答 5

4

您的语句末尾有一个错误的分号if

if (starttimeHours >=6 && starttimeHours <=9 );{// <-semicolon before the brace

这会过早地关闭您的if语句和下一个块,并且else不会像您希望的那样与if语句关联。由于else语句必须有相应的if语句,编译器会报错。

于 2012-09-19T02:37:34.190 回答
1

删除后立即删除分号if )

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

有分号终止 if 块,然后 else 将是无效的语法。

于 2012-09-19T02:37:38.183 回答
0

if 的右括号后有一个分号:

if (starttimeHours >=6 && starttimeHours <=9 );
于 2012-09-19T02:37:37.817 回答
0

看起来你可能过早地结束了你的if陈述。尝试;从此行中删除:

if (starttimeHours >=6 && starttimeHours <=9 );{
于 2012-09-19T02:38:48.603 回答
0

double starttimeMinutes = Double.parseDouble(tokens[1]);{这里的所有其他答案,加上你在子句之前还有一个左大括号if,所以我想我赢了...... :)

于 2012-09-19T03:45:17.187 回答