Scannerクラスについて
導入
Scannerクラスはjava.utilパッケージに含まれるクラスです。
主にコンソール画面の入力、csvファイルの読み込みに使います。
例題
まずよく使う型指定の入力について見てみましょう。
コード画面
はい、こんな感じになります。
ちなみにこれでは不完全なのですが見やすいので一旦解説します。
順番としては
①
まず、Scannerクラスをimportします。importの決まりはimport パッケージ名.クラス名
です。
②
次にインポートしたScannerクラスをインスタンス化します。
System.inがコンソールでの入力(標準入力)です。
③
指定の型の変数を作成。
そこにScannerクラスのnextInt()メソッドで値を取得し初期化します。
他にも型指定だとnextByte, nextShort, nextLong, nextFloat, nextDouble, nextBoolean があります。char 型のメソッドだけがないですね。文字列にはnext と nextLine があります。
④
最後にcloseメソッドでScannerを閉じる必要があります。
closeがないと予期せぬエラーを引き起こすため気をつけましょう。
##例外処理
不完全と言ったのは、実は上記のコンソール入力の画面でint型以外の入力をしてしまうとエラーが起きてしまいます。
コンソール画面
このように予期せぬ処理を行おうとするとエラーが起きるので、この場合の処理を予期しときます。(日本語わからん)
例外が起きる可能性の処理はtry-catch構文で覆います。if文と同じ要領です。
例外の起こる可能性のある処理;
}catch(<例外クラス> <変数名>){
例外が起きた時に行う処理;
}```
です。今回ですと
コード
<img width="704" alt="スクリーンショット 2020-05-26 15.24.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253875/3d2e96d6-1b6e-e20e-c542-17ac611c6e2d.png">
コンソール画面
<img width="469" alt="スクリーンショット 2020-05-26 15.24.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253875/babbcf5c-907a-a78f-3fa4-f1358352f71f.png">
注意点としては
①
例外処理のクラスをimportする必要があります。
よく見ると一番上に```import java.util.InputMismatchException; // 例外処理用のもの```が追加されているのがわかります。
②
```System.out.println("入力された数値は " + num + " です。");```をtry-catch文のそとに出すと例外の場合も処理を行ってしまいます。(今回は num のスコープが try ブロックの中なのでエラーが起きますが)
<img width="466" alt="スクリーンショット 2020-05-26 15.35.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253875/419191e5-73f8-e426-c392-93da1708284e.png">
これは気持ち悪いですね〜。
## まとめ
超基本的なScannerの使い方をまとめてみました。
次は正常処理を行うまで入力をループさせるコードの記事をまとめました。
[次へ](https://qiita.com/hiroki2525/private/00398e3b6921952faa8c)