javaにて電卓を作成しています。
以下が作成中のコードです。状態としては、コンソールに表示される段階のコードになります。
lang
1import java.io.BufferedReader; 2import java.io.InputStreamReader; 3import java.io.IOException; 4 5public class Dentaku { 6 7 public static void main(String[] args) throws IOException{ 8 // TODO 自動生成されたメソッド・スタブ 9 10 int num = 0; 11 String enzan = ""; 12 String value = ""; 13 String msg = "数値"; 14 15 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 16 17 while(true){ 18 19 System.out.println("現在の値:" + num); 20 System.out.println("演算子:" + enzan); 21 System.out.println("入力された値:" + value); 22 System.out.print(msg + "を入力してください >>"); 23 24 String str = br.readLine(); 25 26 System.out.println(""); 27 28 num = Integer.parseInt(str); 29 30 31 32 } 33 } 34} 35
起動時のコンソールイメージは、
現在の値:0
演算子:
入力された値:
数値を入力してください >>
となります。数値を入力すると、
現在の値:0
演算子:
入力された値:
数値を入力してください >>1
↓
現在の値:1
演算子:
入力された値:
演算子を入力してください >>
となり、演算子を入力した後、
現在の値:1
演算子:
入力された値:
演算子を入力してください >>+
↓
現在の値:1
演算子:+
入力された値:
数値又は演算子を入力してください >>
と続くのですが、
①
無限ループ内で行われるので、表示は最初の部分だけで数値と演算子が入力された時、numとmsgの変数部分に適切な変数を代入すればいいと思うのですが、どうにも上手く行きません。
また、例外処理を記述した場合、例えば最初数値を入力する場面で文字列を入力した時に対するtry catchとして、
lang
1while(true){ 2 try { 3 System.out.println("現在の値:" + num); 4 System.out.println("演算子:" + enzan); 5 System.out.println("入力された値:" + value); 6 System.out.print(msg + "を入力してください >>"); 7 8 String str = br.readLine(); 9 10 System.out.println(""); 11 12 num = Integer.parseInt(str); 13 }catch(NumberFormatException e){ 14 System.out.println("数値以外が入力されました"); 15 } 16 }
とすると、演算子を入力した時も当然ながら例外処理として持っていかれてしまいます。
②
例外処理は別途の条件を付けて、そこを例外処理とするべきでしょうか?
以上になりますが、どなたか教えていただけないでしょうか?
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/12/15 22:21