-1
Iは、次のコードブロックを有する:Java - 値が突然変更され、行ステートメントが2回実行されますか?
コードの出力は次のとおりになる:
コール
Exception in thread "main" java.lang.ArithmeticException:/by zero
at PrefixSolver.getOperatorExpression(PrefixSolver.java:245)
at PrefixSolver.solveExpression(PrefixSolver.java:83)
at PrefixSolver.parseDefinition(PrefixSolver.java:168)
at PrefixSolver.parseEnviornment(PrefixSolver.java:122)
at PrefixSolver.solveExpression(PrefixSolver.java:55)
at PrefixSolver.parseDefinition(PrefixSolver.java:168)
at PrefixSolver.parseEnviornment(PrefixSolver.java:122)
at PrefixSolver.solveExpression(PrefixSolver.java:55)
at PrefixSolver.getOperatorExpression(PrefixSolver.java:232)
at PrefixSolver.solveExpression(PrefixSolver.java:83)
at PrefixSolver.parseDefinition(PrefixSolver.java:168)
at PrefixSolver.parseEnviornment(PrefixSolver.java:122)
at PrefixSolver.solveExpression(PrefixSolver.java:55)
at PrefixSolver.getOperatorExpression(PrefixSolver.java:232)
at PrefixSolver.solveExpression(PrefixSolver.java:83)
at PrefixSolver.solve(PrefixSolver.java:12)
at Prefix.main(Prefix.java:17)
私はこれがどのように可能なのか非常に混乱しています。最初のprintlnは正しいですが(10 2)、何とか変更されていますか?何らかの形でsolveExpressionが再び呼び出されるかどうかを確認するために、printlnをメソッドに配置し、再度呼び出されることはありません。値はちょうど何とか変化している.. ..?
実行を渡されたかを確認するために、デバッグのために行きます。 – Henry