私はずっと前に書いた本当に単純な二次式のコードを持っています。それは正常に実行されますが、それは私の最後のelseステートメントを出力する必要はありませんが出力されます!Java - 何もしないでプログラムの出力とelse文?
import javax.swing.JOptionPane;
public class quadFormGUI {
public void quadForm(){
String aNumI = JOptionPane.showInputDialog("What is your 'A' variable?");
String bNumI = JOptionPane.showInputDialog("What is your 'B' variable?");
String cNumI = JOptionPane.showInputDialog("What is your 'C' variable?");
double aNum = Double.parseDouble(aNumI);
double bNum = Double.parseDouble(bNumI);
double cNum = Double.parseDouble(cNumI);
double oneAns = (bNum * bNum) + (-aNum * cNum * 4);
if (oneAns < 0){
JOptionPane.showMessageDialog(null,"The equation does not have a solution", "Quadratic Formula" , JOptionPane.PLAIN_MESSAGE);
}else{
double twoAns = (double) Math.sqrt(oneAns);
double threeAns = -bNum + twoAns;
double xOne = threeAns/(2*aNum);
double fourAns = (bNum * bNum) + (-aNum * cNum * 4);
double fiveAns = (double) Math.sqrt(fourAns);
double sixAns = -bNum - fiveAns;
double xTwo = sixAns/(2*aNum);
JOptionPane.showMessageDialog(null,"X1 is " + xOne + " & X2 is " +xTwo, "Quadratic Formula" , JOptionPane.PLAIN_MESSAGE);
xOne = xOne * -1;
xTwo = xTwo * -1;
if (xOne < 0 && xTwo < 0){
JOptionPane.showMessageDialog(null,aNum +"(X " + xOne + ") (X " + xTwo + ")", "Quadratic Formula" , JOptionPane.PLAIN_MESSAGE);
}else if (xOne < 0 && xTwo > 0){
JOptionPane.showMessageDialog(null,aNum +"(X " + xOne + ") (X + " + xTwo + ")", "Quadratic Formula" , JOptionPane.PLAIN_MESSAGE);
}else if (xOne > 0 && xTwo < 0){
JOptionPane.showMessageDialog(null,aNum +"(X + " + xOne + ") (X " + xTwo + ")", "Quadratic Formula" , JOptionPane.PLAIN_MESSAGE);
}else if (xOne > 0 && xTwo > 0){
JOptionPane.showMessageDialog(null,aNum +"(X + " + xOne + ") (X + " + xTwo + ")", "Quadratic Formula" , JOptionPane.PLAIN_MESSAGE);
}else{
System.out.println("Wrong");
}
}
}
}
何があっても「間違って」出力されます。
コードをステップ実行したときにデバッガからあなたに通知されるのは何ですか? –
何も関係なく、最後のelseステートメントを除いて、私のコードは実行されません。 – StealthVice7
いいえ、そうではありません。すべてが明確に*あなたが望むように*働かない、またはあなたはここに投稿する理由がありません。 'if(oneAns <0)'にブレークポイントを設定して、もう一度やり直してください。行ごとにコードをステップ実行し、変数の値を確認します。 **間違った*ステートメントにつながっている値は**正確に**表示されます。 –