LoginSignup
0
0

More than 1 year has passed since last update.

[paiza]スキルチェック見本問題 Java 数値演算結果で分岐/ 0 が含まれていないか判定 return sc.closeとは

Posted at

初めに

今回もpaizaの見本問題(ランクD)に2問挑戦しました。
新たに、「return」 「sc.close」について学べましたので、
まとめていきます。(記事の後半)

:relaxed:数値演算結果で分岐 (paizaランク D 相当)

整数 A, B, C が与えられます。
式 A × B ≦ C が成立している場合はYESを、
そうではない場合はNOを出力してください。

解答コード

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        if(a*b<=c){
            System.out.println("YES");
        }else{
            System.out.println("NO");
        }
    }
}

:fist:0 が含まれていないか判定

長さ N の数列Aが与えられます。
Aの中に 0 が含まれていない場合はYESを、 
0 が含まれている場合はNOを出力してください。

正解のコード

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
//配列に格納します
            a[i] = sc.nextInt();
        }
//拡張for文を使用し配列の中身を取り出します。
//0を見つけたら、sc.closeでスキャナーを閉じます。=0見つけたら終わる
//returnで呼び出し元に処理を戻す
        for (int x : a) {
            if (x == 0) {
                System.out.println("NO");
                sc.close();
                return;
            }
        }
        System.out.println("YES");
        sc.close();
    }
}

この場合、出力結果は以下のようになります。
NO

sc.closeとreturnがなかったらどうなる?

出力結果は以下のようになります。
NO
YES

:point_up:returnとは?

メソッドから呼び出し元に値を返します。さらに、return文が実行されると、
それ以降の処理は行いません。

:point_up:sc.closeとは?

スキャナを閉じてくれます。

参考記事

終わりに

拡張for文が苦手です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0