CLI(Command Line Interface)とは?
ターミナル画面で文字を入力して操作するインターフェースのこと
- マウスなしで、キーボード操作のみ
- メニューやボタンはない
- 入力と出力がシンプル
- デバッグしやすい
- クラス設計の理解が進む
- GUI や Web に比べて準備が少ない
今作っている Todoアプリは CLIアプリ
import java.util.Scanner;java.utilとはJava 標準ライブラリの中の ユーティリティ(便利ツール)を集めたパッケージ
java→ Java 標準のトップ階層util→ utility(ユーティリティ)の略
「便利な小物ツールが入ってますよ」というフォルダ
その中に Scanner クラス(入力を読み取るためのツール)が入っている
「Scanner」とはコンソール(キーボード入力)を読み取るためのクラス
「S」が大文字 → クラス名だから大文字で始まる
// 例
Scanner scanner = new Scanner(System.in);
// これは「Scanner という型の変数 scanner を作る」処理CLIで使われる文法
例:while (ture) { … } → 条件がtureの間ずっと繰り返すループ文
true は固定の真偽値(boolean)なので、「永遠に繰り返すループ」という意味になる
- 条件を確認 → true → { } の中を実行
- もう一度 条件確認 → true
- また実行
- …永久に繰り返し
CLIアプリ→ユーザーの入力をずっと受け付け続けたい → 無限ループが◎
String input = scanner.nextLine();input ← (ユーザーが打った文字列)
CLIアプリではコマンド入力(add, delete, exit など)を受け取るための基本
- String input
→ 「input という名前の String 型変数を作る」 - =
→ 代入(右側の値を左に入れる) - scanner.nextLine()
→ Scanner オブジェクトに「1 行読み取って返して」と命令している
- ユーザーがキーボードで入力
- Enter を押すとその1行が Scanner に渡る
- nextLine() がそれを String として返す
- 変数 input に入る
ユーザーが入力した1行を文字列として受け取り、変数 input に保存する
与えられた値に応じて分岐する構文
switch (input) {- input の中身によって、次のように動く
- case “add”: → add の処理へ
- case “list”: → list の処理へ
- case “exit”: → exit の処理へ
- default: → 上のどれにも当てはまらない時
| 部分 | 意味 |
|---|---|
| import | 他のパッケージのクラスを使う宣言 |
| java | 標準ライブラリのトップ階層 |
| util | utility(便利ツール)パッケージ |
| Scanner | 入力を読み取るクラス(クラス名なので大文字) |
| while (true) | 永遠に繰り返すループ(アプリを動かし続ける) |
| String input = scanner.nextLine(); | ユーザーの入力を1行読み取って変数に保存 |
| switch (input) | 入力内容に応じて処理を振り分ける |
