1. 正の整数 5 の前後を返す
  2. 0 の前後を返す (負の値をまたぐ)
  3. 負の整数 -3 の前後を返す
コース一覧
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 増やすだけなのに、毎回同じことを 2 回書いている

カウンタを進める、次の行に移る、スコアを 1 点足す。プログラムを書いていると「変数を 1 だけ動かす」操作が異様に多く出てきます。そのたびに count = count + 1; と変数名を 2 回書くのは面倒ですし、片方だけ打ち間違えても Java は気づいてくれません。

そこで用意されているのが ++ と -- です。

Java

int count = 0; count++; // count は 1 count++; // count は 2 count--; // count は 1

count++ は count = count + 1 と同じ、count-- は count = count - 1 と同じです。変数名が 1 回で済むぶん、打ち間違いも減ります。

動かせるのは変数だけで、5++ のように数値へ直接書くことはできません。

代入と混ぜた瞬間、答えが変わる

++ は変数の前にも後ろにも置けます。単独の文として書くかぎり x++; と ++x; はまったく同じ動きで、差は出ません。違いが出るのは、ほかの式と組み合わせたときだけです。

Java

int a = 5; int b = ++a; // 先に a を 6 にしてから b へ渡す。a=6, b=6 int c = 5; int d = c++; // 先に今の 5 を d へ渡してから c を 6 にする。c=6, d=5

前置は「増やしてから渡す」、後置は「渡してから増やす」。同じ 5 から始めても b は 6、d は 5 になります。

解説

迷ったら 2 行に分けます。a++; と int b = a; のように書けば、読む人も自分も順番を考えずに済みます。慣れてから式の中に混ぜても遅くありません。

動かしたあと、元の値はもう残っていない

++ と -- は変数そのものを書き換えます。あとで動かす前の値も使いたいなら、動かす前に別の変数へ控えておきます。

Java

int stock = 10; int before = stock; // 出荷前の在庫を控えておく stock--; // 出荷して 9 になる System.out.println(before + " から " + stock + " へ");

控えを取らずに stock-- を実行してしまうと、10 という値はどこにも残りません。受け取った値を保ったまま、その前後の値がどちらも欲しい場面では、先に控えを作ってから動かす、という順番が効いてきます。

要件

  1. クラス名は Solution、メソッド名は nextAndPrev、引数は int n 1 つ、戻り値の型は String
  2. メソッドの中で ++ と -- 演算子を必ず使うこと (n - 1 や n + 1 のような算術演算で代用しない)
  3. 戻り値は "prev = X, next = Y" の形式 (= の前後と , の後ろに半角スペース 1 つずつ)

入出力例

nextAndPrev(5) → "prev = 4, next = 6" nextAndPrev(0) → "prev = -1, next = 1" nextAndPrev(-3) → "prev = -4, next = -2"

ヒント

引数 `n` をそのまま `n++` すると `n` の値が書き換わります。`int copy1 = n;` `int copy2 = n;` のように別の変数にコピーしてから動かすと安全です

`--copy1;` `++copy2;` のように単独の文として書けば、前置でも後置でもどちらでも動きます。迷ったら前置で OK

文字列連結は `"prev = " + copy1 + ", next = " + copy2` のように `+` でつなぎます。`String` と `int` を `+` でつなぐと、自動的に文字列になります

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

関連レッスン

  • 比較演算子

    値の大小・等しさを判定する比較演算子を学び、boolean を返す式を書けるようになろう。

  • 論理演算子

    `&&` `||` `!` で複数の真偽値を組み合わせ、条件をひとつの式にまとめよう。

  • 演算子の優先順位

    Java の演算子には算数と同じように優先順位がある。式が長くなったときに、どの計算が先に走るかを正しく読める力を身につけよう。

  • 文字列の連結

    `Java` の `+` 演算子で文字列同士、文字列と数値、boolean を繋げる方法と、評価順序の罠を学ぼう。

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

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

  • カウンタ数を保持して増減する典型 UI
  • 変数データに名前をつけて参照する仕組み
  • クラスデータと振る舞いを束ねる単位
  • メソッドクラスに属する関数
  • 引数位置引数=順番で渡す。
  • 戻り値呼び出し元への返答を表す点線矢印
  • 演算子//は切り捨て除算(7 // 2 = 3)。
main.java
学習モード
エディタを読み込んでいます

メモ

インクリメントとデクリメント

⌘S で保存