0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Javaで条件分岐if-else文を簡略化したい

Last updated at Posted at 2019-05-10

はじめに

初投稿になります。
筆者はプログラミングを4月から始めた素人です。この記事は備忘録のつもりで書いたものなのですが、厳しく教えていただけたら幸いです!

if-else文の省略形を使ってみた!

なんとな~く研修していてたらこんなコードを書くことになった。

samp0.java
import java.util.Arrays;

public class MyJava {
	public static void main(String[] args) {
		int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
		int[] b = new int[a.length];

		for (int i = 0; i < a.length; i++) {
			// a の i 番目の要素の偶奇判定
			if (a[i] % 2 == 0) {
				b[i] = 0;
			} else {
				b[i] = 1;
			}
		}
       // 本題とずれるけどprintfメソッド覚えると便利です
       // Arrays.toString(array)は、配列を出力したいときにforを回さなくていいので便利です。
		System.out.printf("b配列の中身は %s です。\n",
									Arrays.toString(b));
	}
}

if-else文簡略化ver,1

この程度の処理で層が深くなるの気持ち悪いなあ…
なんていうふうに思って調べていると…

あれ?
これってif文の中に入ったらcontinueすればいいんじゃね?
else文減るやん!
ってわけで以下のコードです。

samp1.java
import java.util.Arrays;

public class MyJava {
	public static void main(String[] args) {
		int[] a = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
		int[] b = new int[a.length];

		for (int i = 0; i < a.length; i++) {
			// a の i 番目の要素の偶奇判定
			// 偶数なら 0 、奇数なら 1 を代入する
			if (a[i] % 2 == 0) {
				b[i] = 0;
				continue;
			}
	        b[i] = 1;
		}

		System.out.printf("b配列の中身は %s です。\n",
									Arrays.toString(b));
	}
}

if-else文簡略化ver,2

できたけど今度は奇数のときの判定がポツンとしてて読みにくいなあ、、、

んんん!?これは、、、!?
####if-else文を簡略化した書き方

hoge ? fuga : foo

なんぞこれは?

hoge がTrue のとき fuga が、False のとき fooが実行される。

なるほど!変に層を作らないでも済むんだな!よし!

samp2.java
import java.util.Arrays;
public class MyJava {
	public static void main(String[] args) {
		int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
		int[] b = new int[a.length];

		for (int i = 0; i < a.length; i++) {
			b[i] = a[i] % 2 == 0 ? 0 : 1;
		}

		System.out.printf("b配列の中身は %s です。\n",
									Arrays.toString(b));
	}
}

ふう、すっきり!
#あとがき
初投稿なのでつたない文章失礼しました。これからも少しずつ学んだことを記録していきたいので、是非「もっとこうしたほうが読みやすい!」などお声いただけたら幸いです!ここまで読んでいただきありがとうございました。
#参考サイト
Javaの道さま 代入演算子とその他の演算子
(http://www.javaroad.jp/java_operator6.htm)

0
0
5

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?