数値を1つずつスタックに加算、減算、すべての操作の結果を表示します。例。私は手動でスタックに値をプッシュするとJava、Stack Calculatorが正常に動作しますが、スキャナを使用してプッシュした場合は正しく動作しません。
入力:10 入力:+ 入力:10 入力:= 出力:10 + 10 = 20
私は手動で数字と演算子を押して、それを実行しようとしました、それがうまく働いた、のために加算と減算のみ。 (ここにコードがあります)。
public static void main(String[] args) {
Stack<String> stack = new Stack();
stack.push("10");
stack.push("+");
stack.push("10");
stack.push("-");
stack.push("20");
stack.push("+");
stack.push("1");
stack.push("=");
int result=0;
int i;
int result=0;
for(i=0;i<stack.size();i++){
if (stack.elementAt(i)== "+"){
//does get in
2番目のコードで、スタックが最初のコードのものと似ていることを確認しました。これは似ています。なんらかの理由で、 "+"または " - "に等しいにもかかわらず、ifステートメントを実行することは望ましくありません。
Stack<String> stack = new Stack();
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String s1 = sc.next();
stack.push(s1);
if(s1.equals("=")) {
break;
}
}
int i;
int result=0;
for(i=0;i<stack.size();i++){
System.out.print(stack.elementAt(i));
}
for(i=0;i<stack.size();i++){
if (stack.elementAt(i)=="+"){
//doesn't get in
「スキャナを使用してプッシュしない場合」は無意味です。 – EJP