2016-10-13 13 views
1

私はまったく新しいコーディングです。だから、なぜ私のコードが正しく動作していないのだろうと思っていたのですか?コードを実行すると、正しい値が入力され、正しいかどうかが確認されます。しかし、 "else"ステートメントも表示されます。コードが正しく動作しないのはなぜですか?

package MyFirstProject; 
import java.util.Scanner; 

public class MyFirstProject { 

    public static void main(String[] args) { 
     int answer; 
     Scanner scanner = new Scanner(System.in); 
     System.out.println("What is 5 + 5"); 
     answer = scanner.nextInt(); 

     if(answer == 10){ 
      System.out.println("You are correct!"); 
     }if(answer == 9){ 
      System.out.println("You were close! Try again!"); 
     }if(answer == 11){ 
      System.out.println("You were close! Try again!"); 
     } 
     else{ 
      System.out.println("You are wrong! Try again!"); 
     } 

    } 
} 
+1

最後のものだけでなく、すべての 'if'の後に' else'sが必要です。 – resueman

+1

あなたは 'else if(...) 'の束を紛失しています –

+0

これはswitch文のように構成しました。はい、それ以外の場合はifsが必要です。それは、私たちが一般的にbignerdranchのようなnoobieフレンドリーなサイトでこれを見ていると言いました – StarWind0

答えて

0

:他にあなたの例では

if(answer == 10){ 
     System.out.println("You are correct!"); 
    } else if(answer == 9){ 
     System.out.println("You were close! Try again!"); 
    } else if(answer == 11){ 
     System.out.println("You were close! Try again!"); 
    } else{ 
     System.out.println("You are wrong! Try again!"); 
    } 

は、if文の最後にマッチしたので、それは「最後の」選択ではありませんでした。すべてのifを1つのチェーンにまとめる必要があります。そうしないと、elseが一致しないすべての場合に一致します。

または使用スイッチ:

switch(answer): 
    case 10: 
     System.out.println("You are correct!"); 
     break; 
    case 9: 
    case 11: 
     System.out.println("You were close! Try again!"); 
     break; 
    default: 
     System.out.println("You are wrong! Try again!"); 
0

問題はif文にあります。 Elseは最後のif文と関連しています。回答値が「11」でないときはいつでも、それはトリガされます。以下のように "else if"を使う必要があります。他

if(answer == 10){ 
     System.out.println("You are correct!"); 
    }else if(answer == 9){ 
     System.out.println("You were close! Try again!"); 
    }else if(answer == 11){ 
     System.out.println("You were close! Try again!"); 
    } 
    else{ 
     System.out.println("You are wrong! Try again!"); 
    } 
0

使用

public static void main(String[] args) { 
    int answer; 
    Scanner scanner = new Scanner(System.in); 
    System.out.println("What is 5 + 5"); 
    answer = scanner.nextInt(); 

    if(answer == 10){ 
     System.out.println("You are correct!"); 
    }else if(answer == 9){ 
     System.out.println("You were close! Try again!"); 
    }else if(answer == 11){ 
     System.out.println("You were close! Try again!"); 
    } 
    else{ 
     System.out.println("You are wrong! Try again!"); 
    } 


} 
0

理由は、あなたが、第2及び第3のIF前にELSE不足しているということです。

if(answer == 10){ 
    System.out.println("You are correct!"); 
}else if(answer == 9){ 
    System.out.println("You were close! Try again!"); 
}else if(answer == 11){ 
    System.out.println("You were close! Try again!"); 
} 
else{ 
    System.out.println("You are wrong! Try again!"); 
} 

あなたのケースでは、3番目のIFは真ではないため、elseが実行されました。私の修正と10を入力値として最初にIFがtrueになり、残りのすべてが実行されません。あなたがあれば、他にあれば交換する必要があり

0

その理由は、例えばので

answer == 10 // YES - It'll print "You are correct!" 
answer == 9 // No - Skip to the next If block 
answer == 11? // No - skip to the else and print "You are wrong! Try again!" 

正しい方法を作るためにあれば必ずそれだけで一つのブロックをチェックし、これは適切なメッセージを出力していることですあなたがすること:

if(answer == 10){ 
    System.out.println("You are correct!"); 
} else if(answer == 9){ 
    System.out.println("You were close! Try again!"); 
} else if(answer == 11){ 
    System.out.println("You were close! Try again!"); 
} else{ 
    System.out.println("You are wrong! Try again!"); 
} 
関連する問題