2016-06-26 15 views
-5

タスクを処理中で、コードには警告メッセージはありません。私はコンソールでコードを実行しようとすると、メッセージが表示されます: "例外のメイン" java.util.InputMismatchExceptionブーリアンとスイッチ文の組み合わせ

私はINT "oddoreven"を使っていくつかのdiffent組み合わせを試してみました。 String "Fraga"に行く。しかし、何も動作していないようです。

import java.util.Scanner; 
import java.lang.*; 

public class fragor { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     System.out.println("Please ask me a question!"); 

     int oddoreven = input.nextInt(); 
     String Fraga = input.nextLine(); 

     boolean even = oddoreven % 2 == 0; 
     boolean odd = oddoreven % 1 == 0; 
     boolean fragetecken = Fraga.endsWith("?"); 
     boolean utropstecken = Fraga.endsWith("!"); 

     int cases = 0; 
     switch (cases) { 
      case 1: 
       fragetecken = Fraga.endsWith("?"); 
       even = oddoreven % 2 == 0; 
       System.out.println("Yes."); 
      break; 

      case 2: 
       fragetecken = Fraga.endsWith("?"); 
       odd = oddoreven % 1 == 0; 
       System.out.println("No."); 
      break; 

      case 3: 
       utropstecken = Fraga.endsWith("!"); 
       System.out.println("Wow."); 
      break; 

      default: 
       System.out.println("You allways say" +Fraga); 
     } 
    } 
} 

ここで誰かが解決策を見つける手助けをすることができたらうれしいです。 ありがとうございます!

+0

ここにコードを投稿 – Li357

+0

なぜコードは機能しないと思いますか? '' + Fraga''と言うのと同じように、あなたはいつも ""あなたに言います。 Btw。コードの書式設定とスペルを間違いなく変更する必要があります。どちらも恐ろしいです(私は既にここで書式を設定しています)。コードでsth elseを実行させたい場合は、おそらく0以外の 'cases'に別の値を代入してください。 – Paul

+0

' int cases = 0;スイッチ(ケース){' - あなたは何を期待していますか? – luk2302

答えて

0

さて、私たちは物事をあなたのために得ることができるかどうかを見てみましょう。

エラーはあなたが求めているライン20から来ているようだ:

当然
System.out.println("Please ask me a question!"); 
int oddoreven = input.nextInt(); // this is line 20 
String Fraga = input.nextLine();` 

、質問はよくされた後あなたが書いた最初の事、質問(したがってString)が、コードであなたが求めている最初のものは整数です。それはあなたにInputMismatchExceptionを与えます。

整数を書いても、同じ例外が再度発生することはありません。これはあなたがしたいことではありません。

0

誤った入力を使用している可能性が最も高いです。

コード内であなたが作るとき:

int型oddoreven = input.nextInt();

文字列Fraga = input.nextLine();

まず、入力に整数値、次に文字列値を入力すると仮定します。

私に質問してください:プログラムが何をするか

はuが質問に渡しているものは何でも解析しようとしています!

あなたは彼に整数値を与える必要があります。 "hello"のような別の値を与えた場合、プログラムは実行時に "hello"から数値を取得しようとしているため失敗します(これは非常に難しい作業です))。

最初にプログラムに数値(整数)の値を与えるようにしてください。

関連する問題