javaのプログラムについての質問です。「1以上5以下の数字を入れてください」と質問し、1~5の数字を入れると(例えば1を入力したとする)「入力した数字は1です。」といい、また0や6以上の数を入力すると「1以上5以下の数字を入れてください」というところから進まないプログラムの「do-while」部分をメソッド化したプログラムを作成したのですがうまくいきません。また、「入力した数字は〇です」という(〇のなかは1~5の数字)分をメインメソッド内に書かなくてはならないのですが、どうすればいいか教えてください。以下にエラーメッセージと、元のコード、メソッド化したコードを載せておきます。
エラーメッセージ
sam5.java:4: エラー: シンボルを見つけられません
System.out.printf("入力した数字は%d です.", num(x));
^
シンボル: 変数 x
場所: クラス sam5
sam5.java:8: エラー: 変数 xはすでにメソッド num(int)で定義されています
int x;
^
エラー2個
元のコード
import java.util.Scanner;
public class Sa5 {
public static void main(String[] args) {
//xを置く
int x;
Scanner sc = new Scanner(System.in);
//入力した数をdo-whileで処理
do{
System.out.print("1 以上5 以下の数字を入力してください: ");
x = sc.nextInt();
}while(x<1 || x>5);
System.out.printf("入力した数字は%d です.", x);
}
}
do-whileをメソッド化したコード
import java.util.Scanner;
public class sam5{
//メインメソッド
public static void main(String[] args){
System.out.printf("入力した数字は%d です.", num(x));
}
//numメソッド
public static void num(int x){
//xを置いてdo-whileで入力した数を処理
int x;
Scanner sc = new Scanner(System.in);
do{
System.out.print("1 以上5 以下の数字を入力してください: ");
x = sc.nextInt();
}while(x<1 || x>5);
}
}