1. 負の数 -5 の絶対値は 5
  2. 正の数 7 はそのまま 7
  3. 0 の絶対値は 0
  4. 大きな負の数 -100 の絶対値は 100
コース一覧
Java入門:基礎文法編
三項演算子

Java入門:基礎文法編

変数、制御構文、メソッド、クラス、継承、インターフェースなど Java とオブジェクト指向の基礎を、コードを書きながら学べる無料コースです。プログラミング初学者や、業務システム開発で Java を扱う必要がある社会人を対象としています。約 17 時間 (1 日 30 分 × 34 日) で 69 レッスンを修了でき、修了後は Spring などのフレームワーク学習や Java 認定試験への準備が無理なく進められます。

1
Hello, Java
01. はじめての Java プログラム5分
02. 複数行の出力5分
03. 変数を使った自己紹介5分
04. コメントを書く5分
05. 第 1 章まとめクイズ5分
2
変数と演算
01. 変数を宣言する5分
02. データ型の使い分け5分
03. 変数とデータ型クイズ5分
04. 四則演算と剰余5分
05. 税込価格を計算する5分
06. インクリメントとデクリメント5分
07. 比較演算子5分
08. 論理演算子5分
09. 演算子の優先順位5分
10. 文字列の連結5分
11. 型変換 (キャスト)5分
12. 第 2 章 まとめクイズ5分
3
条件分岐
01. if 文の基本5分
02. if-else 文5分
03. else if で複数分岐5分
04. 成績判定プログラム12分
05. うるう年を判定する5分
06. switch 文5分
07. 三項演算子5分
08. じゃんけんの勝敗判定15分
09. FizzBuzz の判定部分5分
10. 第 3 章 まとめクイズ5分
4
繰り返し
01. for 文の基本5分
02. 1 から N までの合計5分
03. 九九の段を作る5分
04. while 文5分
05. カウントダウン5分
06. do-while 文5分
07. 二重ループ5分
08. break と continue5分
09. FizzBuzz 完成5分
10. 繰り返しクイズ5分
11. 第 4 章 まとめクイズ5分
5
メソッド
01. メソッドを定義する5分
02. 引数を受け取るメソッド5分
03. 戻り値を返す5分
04. 複数の引数を取るメソッド5分
05. メソッドのオーバーロード5分
06. メソッドクイズ5分
07. BMI を計算するメソッド5分
08. 第 5 章 まとめクイズ5分
6
配列
01. 配列の基本5分
02. 配列の要素にアクセス5分
03. 配列を for で走査5分
04. Javaで配列の合計・平均を求める方法(forループ)5分
05. 配列の平均5分
06. 配列の最大値5分
07. 配列の線形探索12分
08. 拡張 for ループ5分
09. 配列クイズ5分
10. 第 6 章 まとめクイズ5分
7
クラスとオブジェクト
01. クラスを定義する5分
02. クラスにフィールドを持たせる12分
03. クラスにメソッドを定義する5分
04. インスタンスを作る5分
05. コンストラクタ5分
06. this キーワード5分
07. カプセル化 (private と getter)12分
08. Person クラスを作る5分
09. Product クラスで税込価格15分
10. 銀行口座クラス15分
11. toString のオーバーライド5分
12. クラスとオブジェクト クイズ5分
13. Java 入門 最終クイズ5分

三項演算子

値を 1 つ選ぶだけなのに 5 行になる

変数に入れる値を、2 つのうちどちらかに決めたい。それだけのことを if-else で書くと、宣言と代入が離れて縦に伸びます。

Java

String label; if (age >= 20) { label = "大人"; } else { label = "未成年"; }

同じことを 1 行で書けるのが三項演算子です。条件 ? 真のときの値 : 偽のときの値 という形をしています。

Java

String label = age >= 20 ? "大人" : "未成年";

? の前で条件を聞き、? の後ろに true のときの値、: の後ろに false のときの値を書きます。並びは必ずこの順で、クエスチョンが先、コロンが後です。3 つの部分を取る演算子は Java にこれ 1 つしかないので、「三項」と呼ばれます。

文ではなく式なので、そのまま返せる

if は文です。値を持たないので return if (...) とは書けません。三項演算子は式なので、それ自体が 1 つの値になります。だから変数への代入だけでなく、return の後ろにも、メソッドの引数の中にも、そのまま置けます。

Java

System.out.println(stock > 0 ? "在庫あり" : "品切れ");

if で同じことをするなら、この 1 行のためにわざわざ変数を用意して 4 行書くことになります。処理を切り替えるのではなく値を選ぶだけなら、三項演算子のほうが読み手に優しいです。

両側の型はそろえる

? の後ろと : の後ろは、同じ型にします。age >= 20 ? "大人" : 0 のように文字列と整数を混ぜると、式全体の型が決まらないためコンパイルエラーになります。

同じ理由で、値を返さない処理も枝には置けません。cond ? System.out.println("a") : System.out.println("b") は not a statement として弾かれます。三項演算子は 値を選ぶための道具 であって、if の完全な代わりではありません。

解説

入れ子にもできますが、? と : が 3 組並ぶと一目では読めなくなります。2 段までが目安で、それ以上は if に戻したほうが結局速く読めます。

やってみよう

absoluteValue(int n) を完成させてください。if 文は使わず、三項演算子だけで書きます。

  1. n がどちら側にあるかを聞く条件を ? の前に書く
  2. ? の後ろと : の後ろに、それぞれの場合に返したい値を書く
  3. 全体を return の後ろに置いて 1 行にまとめる
  4. 実行して -5 7 0 -100 の 4 件を通す

0 は正でも負でもありません。自分の書いた条件では 0 がどちらの枝に落ちるのか、そしてその枝を通っても答えが 0 になるのかを、実行する前に頭の中でたどってみてください。境界の 1 件を自分で説明できるようになると、条件式の読み方が一段変わります。

要件

  1. クラス名は Solution、メソッド名は absoluteValue、引数は int n 1 つ、戻り値の型は int
  2. 三項演算子 条件 ? 真の値 : 偽の値 を使って実装すること (if 文は使わない)
  3. 負の数を渡したときは符号を反転した値 (-n) を、0 以上なら n をそのまま返すこと

入出力例

absoluteValue(-5) → 5 absoluteValue(7) → 7 absoluteValue(0) → 0 absoluteValue(-100) → 100

ヒント

三項演算子の文法は `条件 ? 真の値 : 偽の値` です。`?` が先、`:` が後の順番に注意しましょう

条件には `n >= 0` のような比較演算子を使います。`true` のときは `n` をそのまま、`false` のときは `-n` を返します

`-n` は `n` の符号を反転させる演算です。`n = -5` のときは `-(-5) = 5` になるので、絶対値として使えます

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/05/19·更新 2026/08/26

関連レッスン

  • じゃんけんの勝敗判定

    複数の `if` を組み合わせて、3 すくみの勝敗を判定するロジックを書こう。

  • FizzBuzz の判定部分

    プログラマー面接の定番問題 FizzBuzz の中核となる判定ロジックを、if-else if-else と剰余演算で組み立てよう。

  • 第 3 章 まとめクイズ

    第 3 章で学んだ if / else if / switch / 三項演算子 / うるう年 / FizzBuzz を 1 問の 4 択クイズで総復習する章末まとめ。

  • for 文の基本

    決まった回数を繰り返したいときの相棒、for 文を学ぼう。初期化・条件・更新の 3 つの式の意味を理解する。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 変数データに名前をつけて参照する仕組み
  • 三項演算子値1 if 条件 else 値2 の形式。
  • 演算子//は切り捨て除算(7 // 2 = 3)。
  • メソッドクラスに属する関数
  • 引数位置引数=順番で渡す。
  • 処理計算や代入を表す長方形
  • コンパイルソースをバイトコードへ変換する処理
  • クラスデータと振る舞いを束ねる単位
main.java
学習モード
エディタを読み込んでいます

メモ

三項演算子

⌘S で保存