0

ユーザーに整数を入力するように求めるプログラムを作成する必要がありますが、それらは正でなければなりません。ループを使用する必要があると確信しており、Math.abs() を使用することは許可されていないと思います。

私が今書いたものはかなり面倒に見えます。コードは次のとおりです。

public class Q1{
    public static void main(String[] args){
        int num1, num2, num3;

        while(true){
            System.out.println("Input first integer.");
            num1 = TextIO.getInt();
            if(num1 > 0)
                break;
            System.out.println("Integer isn't positive. Try again");
        } 

        while(true){
            System.out.println("Input second integer.");
            num2 = TextIO.getInt();
            if(num2 > 0)
                break;
            System.out.println("Integer isn't positive. Try again");
       }

       while(true){
           System.out.println("Input third integer.");
           num3 = TextIO.getInt();
           if(num3 > 0)
               break;
           System.out.println("Integer isn't positive. Try again");
       }

....


   }
}

基本的に、整数が正であるかどうかをテストするために、整数ごとに個別の while ループを実行しました。これは、1 つのループを使用すると、適切に実行できないためです。まだ機能するループを 1 つだけ使用する方法はありますが、よりきれいに見えますか?

4

5 に答える 5

0

もしかしてこういうこと?

public class Q1{
public static void main(String[] args){

int[] input_integers = new int[3]; //create an array of however many integers you need 

int i = 0; // initiate your counter
while(i<input_integers.length){ // you will loop through until all integers are set
System.out.println("Input integer number "+ (1+i)); // computers count from 0, humans from 1
input_integers[i] = TextIO.getInt();
if(input_integers[i] < 0) // check if it is not positive
System.out.println("Integer isn't positive. Try again");
else { // if it is, increment your counter and get the next integer
i++;
}
} 
 }

 }

お役に立てれば

** このコードはテストされていません

于 2013-08-01T20:01:06.080 に答える