// 課題)0を入力すると掛け算と足し算を切り替えるプログラムを作りなさい。 // 計算終了ごとに、その回の計算式と答えを表示する。 // 使う数は正の整数とする。また、初めの演算は掛け算とし、最初の被乗数は1とする。 // したがって、初回の入力値が0であれば、演算は足し算に切り替わり、被加数は0になる。 // 計算の結果が100を超えたら、プログラムを終了する。 //-------------------------------------------------------------------------- // 例えば、最初に5を入力すると、1x5を計算する。 // 次に3を入力すると、5x3を計算する。 // 結果は15である。 // 次に0を入力すると掛け算が足し算に切り替わる。 // 次に20を入力すると、15+20を計算する。 // 結果は35である。 // 次に0を入力すると、足し算が掛け算に切り替わる。 // 次に4を入力すると、35x4を計算する。計算結果は140である。 // 計算の結果が100を超えたので、この時点でプログラムを終了する。 import java.io.*; public class Sample5 { public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); int a = 1; //被乗数用 int b = 1; //データ入力用 int c = 0; //演算種決定用 while( a <= 100 ){ System.out.print("正の整数あるいは演算切替命令(0)を入力してください: "); String buf = br.readLine(); b = Integer.parseInt(buf); if( b == 0 ){ c++; System.out.println( "演算を切り替えます。" ); if( c == 1 ){ a = 0;} } else { if( (c % 2) == 1 ){ System.out.print( a + " + "); a += b; } else { System.out.print( a + " x "); a *= b; } System.out.println( b + " = " + a ); } } System.out.print("演算結果が 100 を超えました。終了します。"); } }