そんな手が…!

switch文のところ勉強してるときに驚かされたというか、以前誰かに言われたことを思い出させられた。
曰く、「やり方は人それぞれですよ」


こんなプログラムで…例えだから簡単に。手抜きとか言わない

import java.io.*;

public class choice
{
 public static void main(String[] args)throws IOException
 {
	BufferedReader reader = new BufferedReader
			(new InputStreamReader(System.in));
	System.out.println("a,b,cのいずれかを入力して下さい");

	String line = reader.readLine();
	char num = line.charAt(0);

	switch(num)
	{
	case 'a':
		System.out.println("aを選択しました");
		break;
	case 'b':
		System.out.println("bを選択しました");
		break;
	default:
		System.out.println("cを選択しました");
		break;
	}
 }
}

「a,b,cのいずれかを入力して下さい」
が表示された後、何も入力せずにenterを叩くとエラーが出る。このエラーを回避する為にはどうすればいいのか、という問題があって最初に考えたのはtry〜catchでいいのかな、なんだけど解答には別の答えが用意されてた。

文字入力されなかった場合、強制的に'c'が入力されたとして処理すればいい。

char num;
if(line.length() > 0){
	num = line.charAt(0);
}
else{
	num = 'c';
}

おいら的にはこの解答、目から鱗ものでした。