-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ため、コンパイラーはエラーを出しています。elseif

于 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 に答える