2017-04-04 17 views
-1

このコードを書いて、ユーザーが入力した整数を曜日に変換しました。私は遭遇したいくつかのエラーを解決することができませんでしたが、何が欠けていますか?ユーザー(int)による入力を文字列に変換する方法

import java.util.Scanner; 
    class dayofweek2 { 
     public static void main(String[] args) { 
     Scanner daynumber = new Scanner(System.in); 

     String input = Integer.parseInt(daynumber); 
     System.out.println("Enter a number from 1 to 7"); 
     if (input == 1) { 
      System.out.println("monday"); 
     } 
     if (input == 2) { 
      System.out.println("tuesday"); 
     } 
     if (input == 3) { 
      System.out.println("wednesday"); 
     } 
     if (input == 4) { 
      System.out.println("thursday"); 
     } 
     if (input == 5) { 
      System.out.println("friday"); 
     } 
     if (input == 6) { 
      System.out.println("saturday"); 
     } 
     if (input == 7) { 
      System.out.println("sunday"); 
     } 
     } 
    } 
+1

'IF(入力== 1);' 'if'は小文字であり、 –

+0

daynumberがないか数を有していないセミコロンがあってはなりません。あなたはそれを解析することはできません。 –

+2

'Integer.parseInt'はスキャナオブジェクトを取得しません –

答えて

0

A Scannerいくつかの入力を取得する必要があります。あなたはScanner.nextLine()または他のnextメソッドの1つを呼び出すことによってそれを行います。あなたの例では

は、あなたがこれを行うことができます:

Scanner scanner = new Scanner(System.in); 
String input = scanner.nextLine(); // read a line 
int daynumber = Integer.parseInt(input); // parse the line that was entered as an integer 

switch(daynumber) { 
    // ... 
} 
+0

おかげさまで、@matt – juniorbuba

+0

私はプログラムを完成させ、それを実行させてくれた多くの努力の後、大変お世話になりました。私は後で詳細な調査のために完全なプログラムを投稿します。.....もう一度お付き合いください – juniorbuba

2

は、あなたのコード内に複数の浮遊/陳腐セミコロンがあります。私はあなたのためにあなたのコードを修正しました:)

TIP:あなたのロジックを簡素化し、それをはるかに読みやすい

import java.util.Scanner; 
    class dayofweek2 { 
     public static void main(String[] args) { 

     Scanner daynumber = new Scanner(System.in); // Print to screen, querying user 
     System.out.println("Enter a number from 1 to 7"); 
     String j = daynumber.nextLine(); // Per requirements, obtain String 
     Integer input = Integer.parseInt(j); // Convert String to Integer 

     if (input == 1) { // Begin processing of input 
      System.out.println("monday"); 
     } 
     if (input == 2) { 
      System.out.println("tuesday"); 
     } 
     if (input == 3) { 
      System.out.println("wednesday"); 
     } 
     if (input == 4) { 
      System.out.println("thursday"); 
     } 
     if (input == 5) { 
      System.out.println("friday"); 
     } 
     if (input == 6) { 
      System.out.println("saturday"); 
     } 
     if (input == 7) { 
      System.out.println("sunday"); 
     } 
     } 
    } 
+0

私はswitch文を使ってもコードにいくつかのエラーがあります – juniorbuba

+0

@xyzt – juniorbuba

+0

が固定されていますので、スキャナが正しく使用されていなかったことに気づかなかった – unjankify

0

System.out.println("Enter a number from 1 to 7");

後作るためにあなたに switchステートメントを使用することができますロジックは、ユーザーが変数に入力して格納する数値をgrepすることです。その後、

int tmp = daynumber.nextInt();

同様

と場合を続行するか、あなたが不幸なセミコロンをたくさん持っている文

1

を切り替えます。彼らはあなたのif団体を解雇します。また、私はScanner#nextInt()Scannerの異なる変数名を使用します。次に、inputを読み取ろうとする前にプロンプ​​トを表示します。そして、私は配列を使ってそれらのすべてを除外します(if)。何かのように、

Scanner scan = new Scanner(System.in); 
System.out.println("Enter a number from 1 to 7"); 
int input = scan.nextInt(); 
String[] days = { "monday", "tuesday", "wednesday", "thursday", 
     "friday", "saturday", "sunday" }; 
if (input >= 1 && input <= 7) { 
    System.out.println(days[input - 1]); 
} 
関連する問題