MyNumbers と MyScanner の 2 つのクラスがあります。MyScanner クラスで最終結果を出力するために、検証済みの入力を calculateSum (int x, int y) メソッドに渡そうとしていますが、MyScanner クラスからユーザー入力を取得して渡す方法がわかりません。それらを MyNumbers クラスの validate() メソッドに渡して、calculateSum() メソッドがそのタスクを実行できるようにします。
PS validate() メソッドは void でパラメーターなしである必要がありますが、calculateSum() メソッドは結果を文字列として返し、2 つのパラメーターを受け取るには文字列である必要があります。また、validate() メソッドでユーザー入力を要求し、値を検証して値が特定の範囲内にあることを確認する必要もあります。このメソッドは、ユーザーが有効な数値を挿入するまでプロンプトを表示し続ける必要があります。
別の変数を導入したり、セッターを実装したり、変数をパラメーターとして validate() メソッドに渡したりせずに、どうすればこれを達成できますか?
public class MyNumbers {
int number1;
int number2;
public void validate() {
if (number1 >= 10 && number1 <= 50) {
if(number2 >= 5 && number2 <= 20){
System.out.println(calculateSum(number1, number2));
}
}
else {
System.out.println("Number should be between 10 and 50");
}
}
public String calculateSum(int x, int y) {
this.number1 = x;
this.number2 = y;
validate();
return "Sum: " + number1 + number2;
}
}
public class MyScanner {
public static void main(String[] args) {
MyNumbers myNumbers = new myNumbers();
Scanner scanner = new Scanner(System.in);
int option = scanner.nextInt();
do{
switch(option){
case 1:
System.out.println("Enter number 1");
int x = scanner.nextInt();
System.out.println("Enter number 2");
int y = scanner.nextInt();
myNumbers.calculateSum(x, y);
break;
}
}
while(option!=0);
}
}