質問は次のとおりです。
一連の正の整数を読み取り、25 未満のすべての整数の積と 25 以上のすべての整数の合計を書き出す Java プログラムを作成します。センチネル値として 0 を使用します。
ユーザーが入力を配列に追加できるようにする方法を理解できました。しかし、コードを if ステートメントと統合して、タスクを実行する完全に機能するプログラムを作成する方法を見つけることができませんでした。これが今の私の調査結果です。
import java.util.*;
public class UserInput {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
Scanner stdin = new Scanner(System.in);
do {
System.out.println("Current list is " + list);
System.out.println("Add more? (y/n)");
if (stdin.next().startsWith("y")) {
System.out.println("Enter : ");
list.add(stdin.next());
} else {
break;
}
} while (true);
System.out.println("List is " + list);
String[] arr = list.toArray(new String[0]);
System.out.println("Array is " + Arrays.toString(arr));
}
}
配列に入力を読み取らせ、25 未満のすべての数値の積と 25 を超えるすべての数値の合計を見つけるにはどうすればよいでしょうか。
解決策: 以下のボランティアによって投稿された回答を何時間も微調整した結果、自分に合った解決策を見つけることができました。誰かが役に立つと思った場合に備えて、ここに投稿しました。
import java.util.*;
public class UserInput {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
Scanner stdin = new Scanner(System.in);
do{
System.out.println("Current list is : " + list);
System.out.println("Enter number : ");
int entered = stdin.nextInt();
if(entered == 0){
int sum = 0,product = 1;
for(Integer number : list){
if(number<25){
sum += number;
}else if(number >= 25){
product *= number;
}
}
System.out.println("sum : " + sum);
System.out.println("product : " + product);
}else{
list.add(entered);
int sum = 0,product = 1;
for(Integer number : list){
if(number<25){
sum += number;
}else if(number >= 25){
product *= number;
}
}
System.out.println("sum : " + sum);
System.out.println("product : " + product);
}
System.out.println("Add more numbers to the list ? (Y/N) : ");
} while(stdin.next().equalsIgnoreCase("y"));
}
}
みなさん、投稿やコメントをありがとうございます!本当に役に立ちました!:)