私の目標も単純な電卓です。私はすでに2つの値をとり、加算、減算などを行うことができるものを作っていますが、例のように2 + 3
と3 * 4 + 5/2
のようなユーザー入力を読み取ることもできます。私はプログラミングの導入コースを取っています。ユーザー入力を2つの配列、ダブルと文字列にソート
したがって、ユーザー入力は、いくつの値といくつの操作(優先順位のルールが考慮されていないか)を決定します。
私はおそらく、if elseをifループでwhileループを使って2つの配列に直接入力することができると考えました。擬似コードでは、
while (input is not quit)
if input is a value, put in value array
if input is symbol, put in symbol array
これまでのところ私はこれ書いた:
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String input = "";
Double[] values = new Double[10];
String[] symbols = new String[10];
int v = 0;
int s = 0;
while (!input.equals("q")) {
input = sc.nextLine();
if (sc.hasNextDouble()) {
values[v] = Double.parseDouble(input);
v++;
} else {
symbols[s] = input;
s++;
}
}
System.out.println(Arrays.toString(values));
System.out.println(Arrays.toString(symbols));
}
テスト実行は、このようなものです:私は一種の私はQを押してあまりにも必要とどのように見ることができます
2
2
2
a
b
s
q
q
[2.0, 2.0, null, null, null, null, null, null, null, null]
[2, a, b, s, q, null, null, null, null, null]
なぜなら、2つのうちの1つが文字列配列に入っている理由は分かりません。
文字を入力して2回入力すると例外が発生し、プログラムが終了します。
返信いただきありがとうございます。
これはJavaですか?言語タグを追加する必要があります。 – hatchet
ああ、申し訳ありません!サイトに新しい:) – IMJensen