Java 練習問題「初級」

基礎編に引き続き初級編です。

##初級編

###整数値を2つ入力させ、1つめの値を2つめの値で割った結果を表示し、続けてその結果に2つめの値を掛けた結果を表示するプログラムを作成せよ。計算はすべて整数型で行うこと（割り切れない場合は自動的に小数点以下が切り捨てられる）。

```java
    public static void question21(int num1, int num2) {
        System.out.println("問21");
        int num3 = num1 / num2;
        //1つめの値を2つめの値で割った結果を表示
        System.out.println(num3);
        //その結果に2つめの値を掛けた結果を表示する
        System.out.println(num3 * num2);
    }

```
###整数値を入力させ、その値が5よりも大きく、かつ、20よりも小さければOKと表示するプログラムを作成せよ。
```java
     *
     * @param num1
     */
    public static void question22(int num1) {
        System.out.println("問22");
        //　値が5よりも大きく、かつ、20よりも小さい場合
        if (num1 > 5 && num1 < 20) {
            //　値が5よりも大きく、かつ、20よりも小さければ
            System.out.println("1つ目の値はOKです");
        }
    }
```
###整数値を入力させ、その値が-10以下、または、10以上であればOKと表示するプログラムを作成せよ。
```java
     *
     * @param num1
     */
    public static void question23(int num1) {
        System.out.println("問23");
        if (num1 <= -10 || num1 >= 10) {
            //　値が-10以下、または、10以上の場合
            System.out.println("1つ目の値はOKです");
        }
    }
```
###数値を入力させ、その値が-10以上0未満、または、10以上であればOK、そうでなければNGと表示するプログラムを作成せよ。
```java
     *
     * @param num1
     */
    public static void question24(int num1) {
        System.out.println("問24");
        //　値が-10以上0未満の場合
        if ((num1 >= -10 && num1 < 0) || (num1 >= 10)) {
            System.out.println("1つ目の値はOKです");
        } else {
            System.out.println("NGです");
        }
    }
```
### 整数値を入力させ、その値が-10未満ならrange 1、-10以上0未満であればrange 2、0以上であればrange 3、と表示するプログラムを作成せよ。
```java

    public static void question25(int num1) {
        System.out.println("問25");
        //　値が-10未満の場合
        if (num1 < -10) {
            System.out.println("range 1");
            //　-10以上0未満
        } else if (num1 < 0) {
            System.out.println("range 2");
            //　0以上
        } else {
            System.out.println("range 3");
        }
    }
```
###整数値を入力させ、その値が1ならone、2ならtwo、3ならthree、それ以外ならothersと表示するプログラムをswicth-case文を使って作成せよ。
```java
     *
     * @param num1
     */
    public static void question26(int num1) {
        System.out.println("問26");
        //　記入例num1(1,2,3,0)
        switch (num1) {
            // 式の値と値num1が一致したときの処理
            case 1:
                System.out.println("one");
                break;
            case 2:
                System.out.println("two");
                break;
            case 3:
                System.out.println("three");
                break;
            // 式の値がどのcaseの値とも一致しなかったときの処理
            default:
                System.out.println("others");
        }
    }
```
### 整数値を入力させ、1からその値までの総和を計算して表示するプログラムを作成せよ。ただし、0以下の値を入力した場合は0と表示する。
```java
     *
     * @param num1
     */

    public static void question27(int num1) {
        System.out.println("問27");
        for (int i = 1; i < num1; i++) {
            System.out.println(i);
        }
        if (num1 == 0) {
            System.out.println(0);
        }
    }
```
### 整数値を入力させ、その値の階乗を表示するプログラムを作成せよ。ただし、0以下の値を入力した場合は1と表示する。(階乗メソッド)
```java
     *
     * @param num1
     */
    public static void question28(int num1) {
        for (int i = 1; i <= 10; i++) {
            num1 = num1 * i;
        }
        System.out.println(num1);
    }
```
###整数値を5回入力させ、それらの値の合計を表示するプログラムを繰り返しを使って作成せよ。
```java
     *
     * @param num1
     * @param num2
     * @param num3
     * @param num4
     * @param num5
     */

    public static void question29(int num1, int num2, int num3, int num4, int num5) {
        System.out.println("問29");
        // 値の合計を表示
        System.out.println(num1 + num2 + num3 + num4 + num5);
    }
```
###整数値を入力させ、その個数だけ*を表示するプログラムを作成せよ。入力値が0以下の値の場合は何も書かなくてよい。
```java
     *
     * @param num1
     */
    public static void question30(int num1) {
        System.out.println("問30");
        for (int i = 0; i < num1; i++) {
            System.out.print("*");
        }
    }
```
###整数値を入力させ、その個数だけ*を、5個おきに空白（スペース）を入れて表示するプログラムを作成せよ。
```java
     * 入力値が0以下の値の場合は何も書かなくてよい。
     *
     * @param num1
     */
    public static void question31(int num1) {
        System.out.println("問31");
        for (int i = 1; i < num1; i++) {
            System.out.print("*");
            // *を、5個おきに空白にする
            if (i % 5 == 0) {
                System.out.print("\t");
            }
        }
    }
```
###1から20まで順に表示するが、5の倍数の場合は数字の代わりにbarと表示するプログラムを作成せよ。
```java
    public static void question32() {
        System.out.println("問32");
        for (int i = 1; i < 20; i++) {
            // 5の倍数の場合
            if (i % 5 == 0) {
                System.out.println("bar");
            } else {
                // 5の倍数ではないとき
                System.out.println(i);
            }
        }
    }
```
###整数値を入力させ、1から9まで、入力値以外を表示するプログラムを作成せよ。
```java
     *
     * @param num1
     */
    public static void question33(int num1) {
        System.out.println("問33");
        for (int i = 1; i < 10; i++) {
            // iが入力した値じゃなかったら
            if (!(i == num1)) {
                System.out.println(i);
            }
        }
    }
```
###整数値を入力させ、1から9まで、入力値と入力値+1以外を表示するプログラムを作成せよ。入力値が9の場合は9のみ表示しない。
```java
     *
     * @param num1
     */
    public static void question34(int num1) {
        System.out.println("問34");
        // 入力値と入力値+1ではなかったら
        for (int i = 1; i < 10; i++) {
            if ((!(i == num1)) && (!(i == (num1 + 1)))) {
                System.out.println(i);
            }
        }
    }
```
###{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、整数値を入力させ、要素番号が入力値である配列要素の値を表示するプログラムを作成せよ。入力値が配列の要素の範囲外であるかどうかのチェックは省略してよい。
```java
    public static void question35(int num1) {
        System.out.println("問35");
        // {3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言
        int[] array = {3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
        System.out.println(array[num1]);
    }
```
###{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、整数値を2つ入力させ、要素番号が入力値である2つの配列要素の値の積を計算して表示するプログラムを作成せよ。入力値が配列の要素の範囲外であるかどうかのチェックは省略してよい。

```java
     *
     * @param num1
     */
    public static void question36(int num1, int num2) {
        System.out.println("問36");
        // {3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言
        int[] array = {3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
        System.out.println(array[num1] * array[num2]);
    }
```
###{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、整数値を入力させ、要素番号が入力値の配列要素の値を参照し、さらにその参照した値を要素番号とする配列要素の値を参照して表示するプログラムを作成せよ。入力値が配列の要素の範囲外であるかどうかのチェックは省略してよい。
 ```java
    public static void question37(int num1) {
        System.out.println("問37");
        // {3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言
        int[] array = {3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
        int num2;
        num2 = array[num1];
        System.out.println(array[num2]);
    }
```
###{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、最初は参照する要素番号を0とし、この参照する要素番号の配列要素の値を表示し、次にその配列要素の値を次の参照する要素番号とし、この次の参照する要素番号の配列要素の値を表示し、さらにその配列要素の値を次の参照する要素番号とし、……を10回繰り返すプログラムを作成せよ。

```java
    public static void question38() {
        System.out.println("問38");
        // {3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言
        int[] array = new int[]{3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
        // 参照する要素番号0の配列要素の値を表示する
        int index = 0;
        // 10回繰り返す
        for (int i = 0; i < 10; i++) {
            //　indexの値を要素番号indexに代入
            index = array[index];
            //　要素番号aのときの配列要素の値を出力する
            System.out.println(index);
        }
    }
```
###{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、最初は参照する要素番号を0とする。この参照する要素番号の配列要素の値から次の要素番号の配列要素の値を引いた値を表示し、参照する要素番号を1増やす。この手順を9回繰り返すプログラムを作成せよ。）
```java
    public static void question39() {
        System.out.println("問39");
        // {3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言
        int[] array = new int[]{3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
        // 9回繰り返す
        // 現在の要素番号 index
        for( int index = 0; index < 9; index++){
            /**
             * index=0のとき　currentValue=3,nextIndex=1,nextValue=7
             * index=1のとき　currentValue=7,nextIndex=2,nextValue=0
             * index=2のとき　currentValue=0,nextIndex=3,nextValue=8
             * */
            // 参照する要素番号の配列要素の値 currentValue
            int currentValue = array[index];
            // 今ある要素番号(index)の次の要素番号をnextIndex
            int nextIndex = index + 1;
            //　次の要素番号の配列要素の値をnextValue
            int nextValue = array[nextIndex];
            // 要素番号の配列要素の値から次の要素番号の配列要素の値を引いた値
            System.out.println(currentValue - nextValue);
        }
    }
}
```