1

この記事の目次



このページは「JAVAの繰り返し構文 while」の演習問題です。「JAVAの繰り返し構文 while」の基礎を学びたい方はこちらで参考してください。

1.  n数字までの偶数の出力


問題:1から20までの中の偶数をコンソールに出力する

解答例
package helloworld;
 
public class HelloWorld {
     
    public static void main(String[] args) {
        int number = 2;
         
        System.out.print("1から20までの中の偶数は ");
        while (number <= 20) {
            System.out.print(number + "; ");
            number += 2;
        }
                
    }
  
}

実行結果:

説明 : プログラムは以下のような流れです

  • ステップ1:number = 2でnumber変数を宣言して、2の初期値する
  • ステップ2:number<20であれば、numberの値をコンソールに出力する
  • ステップ3:numberをnumber+2に増やす
  • ステップ4:ステップ2に戻す
  • ステップn:いつかでnumber>20だったら、ループ終了します。
  • 2.  最大公約数と最小公倍数を計算する


    問題:int型のa,b(a,b>0)を宣言し、a,bの最大公約数と最小公倍数を計算する

    ヒント:

  • 2つの自然数 a, b の最大公約数を GCD とすると最小公倍数 LCM は次の公式から求めることができます。
  • 最大公約数は「ユークリッドの互除法」で求めます。
  • 解答例
    package helloworld;
    
    public class HelloWorld {
         
        public static void main(String[] args) {
    
            int a = 10;
            int b = 15;
            int i,r,x;
            
            System.out.println(a + "と" + b + "に対して:" );
            x = a * b;
            
            if(a < b){
                i = a;
                a = b;
                b = i;
            }
    
    
            
            // ユークリッドの互除法 
            r = a % b;
            while(r!=0){
                a = b;
                b = r;
                r = a % b;
            }
            
            // 最大公約数 
            System.out.println("最大公約数 = " + b );
            // 最小公倍数を出力 
            System.out.println("最小公倍数 = " + x/b );
                    
        }
      
    }

    実行結果:

    3.  自然数の階乗


    問題:int型のa変数を宣言し、aの階乗を計算する

    ヒント : 階乗の計算方法 : n ! = n ( n − 1 ) ( n − 2 ) ⋯ ⋅ 3 ⋅ 2 ⋅ 1

    解答例
    package helloworld;
    
    public class HelloWorld {
         
        public static void main(String[] args) {
    
            int a = 10;
            int n = 1;
            int fact = 1;//aの階乗の結果
            
            //aの階乗を計算するループ
            while (n <= a) {
                
                fact *= n;
                n++;
                
            }
             
            System.out.println(a+"! = " + fact);
                    
        }
      
    }

    実行結果:

    4.  12 + 22 + ... + n2を計算する


    問題:n自然数までの 12 + 22 + ... + n2を計算する

    条件 : While文を使用すること

    解答例
    package helloworld;
    import java.util.Scanner;
    
    public class HelloWorld {
         
        public static void main(String[] args) {
    
            int n, i = 1;
            int sum = 0;
            Scanner scanner = new Scanner(System.in);
             
            System.out.print("n数字を入力する : ");
            n = scanner.nextInt();
            
            while (i <= n) {
                sum += i * i;//iの2畳をsumに足し加える
                i++;
            }
            
            System.out.println(n + "までの二乗の和 = " + sum);
                    
        }
      
    }

    実行結果:

    5.  自然数の各桁の数字の和


    問題:入力した自然数の各桁の数字の和を計算する。

    条件 : while-do文を使用すること。


    例 :
    自然数1234の場合:1+2+3+4 = 10になる。

    解答例
    package helloworld;
    import java.util.Scanner;
    
    public class HelloWorld {
         
        public static void main(String[] args) {
    
            int number, balance;
            int sum = 0;
            Scanner scanner = new Scanner(System.in);
             
            System.out.print("自然数を入力する: ");
            number = scanner.nextInt();
            System.out.print(number + "の各桁の数字の和 = ");
             
            do{
                balance = number % 10;//10を割った余りで、現在のnumberの最後の桁になります。
                sum += balance;//現在のnumberの最後の桁をsumに加える。
                number /= 10;//現在のnumberの最後の桁をカットする,number<10の場合はnumber /= 10より、num=0になります。
            } while (number > 0);
             
            System.out.println(sum);
                    
        }
      
    }

    実行結果:

    広告