Java初心者です。
同じようなコードをメソッド化し一つのクラスにまとめたいのですが、どこを切り離せば良いか分かりません。
例えば、下記2つのコードは「Scannerメソッドで数値を取得し、入力された数値に対応する文字列を返す」というプログラムなのですが、どこから切り分けてメソッド化し、一つのクラスに分ければいいのかさっぱり分からず困っています。
ここで知りたいことは、
・下記2つの場合、一つにまとめられる処理はあるのか?
・もしあるなら、どこの処理から切り離すのがいいのか?
・Scannerメソッドは毎回インスタンス化しなければいけないのか?
です。
ご回答いただけますと幸いです。
※メソッドやクラスについては一通り学んだつもりですが、理解が浅くまだまだ未熟なことは承知の上です。
Java
1package advanced_chapter1; 2import java.util.InputMismatchException; 3import java.util.Scanner; 4 5public class task_05 { 6 public static void main(String[] args) { 7 8 // 変数の定義 9 int a = 0; 10 int b = 0; 11 12 try { 13 // scannerをインスタンス化 14 Scanner scanner = new Scanner(System.in); 15 16 // 起動時に文字列を表示 17 System.out.print("整数値a:"); 18 // 整数値aを読み込む 19 a = scanner.nextInt(); 20 21 // 文字列を表示 22 System.out.print("整数値b:"); 23 // 整数値bを読み込む 24 b = scanner.nextInt(); 25 26 scanner.close(); 27 28 if (a > b) { 29 System.out.println("大きいほうの値は" + a + "です。"); 30 } else if (a < b) { 31 System.out.println("大きいほうの値は" + b + "です。"); 32 } else { 33 System.out.println(a + "と" + b + "はどちらも同じ値です。"); 34 } 35 36 // 整数値以外の値が入力された場合の例外処理 37 } catch (InputMismatchException e) { 38 System.out.println("整数値を入力してください。"); 39 } 40 } 41}
Java
1package advanced_chapter1; 2 3import java.util.InputMismatchException; 4import java.util.Scanner; 5 6public class task_04 { 7 public static void main(String[] args) { 8 9 // 変数の定義 10 int num = 0; 11 12 try { 13 // scannerをインスタンス化 14 Scanner scanner = new Scanner(System.in); 15 16 // 起動時に文字列を表示 17 System.out.print("点数:"); 18 // 整数値(点数)を読み込む 19 num = scanner.nextInt(); 20 21 scanner.close(); 22 23 // numの値が負の数だった場合の処理 24 if (num < 0) { 25 System.out.println("不正な点数です。"); 26 } else if (num > 100) { 27 System.out.println("100より小さい点数を入力してください。"); 28 // numの値が80以上100以下の場合の処理 29 } else if (num >= 80 && num <= 100) { 30 System.out.println("優"); 31 // numの値が70以上80未満の場合の処理 32 } else if (num >= 70 && num < 80) { 33 System.out.println("良"); 34 // numの値が60以上70未満の場合の処理 35 } else if (num >= 60 && num < 70) { 36 System.out.println("可"); 37 // numの値が60未満の場合の処理 38 } else { 39 System.out.println("不可"); 40 } 41 // 整数値以外の値が入力された場合の例外処理 42 } catch (InputMismatchException e) { 43 System.out.println("点数(整数値)を入力してください。"); 44 } 45 } 46}
回答3件
あなたの回答
tips
プレビュー