我遇到 JOptionPane 和 if/else 语句的问题
I am having Issues with JOptionPane and if/else statements
我在使用 JOptionPane 时遇到问题。我的程序应该问用户一个问题,如果他们回答 Y 则继续下一个问题。但是如果他们回答 N 它会问另一个问题。我的问题是,当用户回答 N 时,它只会转到 Y 问题。它基本上是按照问题提出的顺序移动,而不是遵循 if-else 语句的参数。
这是我的代码:
import javax.swing.JOptionPane;
public class Helper2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
helpMe();
}
public static void helpMe(){
String ans = JOptionPane.showInputDialog("Does you car turn over? (Y/N)");
if (ans.equalsIgnoreCase("Y")){
JOptionPane.showInputDialog("Does it run rough? (Y/N)");
if (ans.equalsIgnoreCase("Y")){
JOptionPane.showInputDialog("Did you buy cheap gas (Y/N)");
} else if (ans.equalsIgnoreCase("N")){
JOptionPane.showInputDialog("Does it stop poorly? (Y/N)");
}
}else if (ans.equalsIgnoreCase("N")) {
JOptionPane.showMessageDialog(null, "Your battery is dead");
}else {
JOptionPane.showMessageDialog(null, "ERROR");
}
}
}
基本上,我从来没有重新定义ans
。所以我不得不把 ans =
放在除了最后两个之外的所有 JOptionPane
语句之前。
您没有在每个问题中更改 ans
的值。尝试这样的事情:
import javax.swing.JOptionPane;
public class Helper2 {
public static void main(String[] args) {
helpMe();
}
public static void helpMe() {
String ans = JOptionPane.showInputDialog("Does you car turn over? (Y/N)");
if (ans.equalsIgnoreCase("Y")) {
ans = JOptionPane.showInputDialog("Does it run rough? (Y/N)");
if (ans.equalsIgnoreCase("Y")) {
ans = JOptionPane.showInputDialog("Did you buy cheap gas (Y/N)");
} else if (ans.equalsIgnoreCase("N")) {
ans = JOptionPane.showInputDialog("Does it stop poorly? (Y/N)");
}
} else if (ans.equalsIgnoreCase("N")) {
JOptionPane.showMessageDialog(null, "Your battery is dead");
} else {
JOptionPane.showMessageDialog(null, "ERROR");
}
}
}
我在使用 JOptionPane 时遇到问题。我的程序应该问用户一个问题,如果他们回答 Y 则继续下一个问题。但是如果他们回答 N 它会问另一个问题。我的问题是,当用户回答 N 时,它只会转到 Y 问题。它基本上是按照问题提出的顺序移动,而不是遵循 if-else 语句的参数。 这是我的代码:
import javax.swing.JOptionPane;
public class Helper2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
helpMe();
}
public static void helpMe(){
String ans = JOptionPane.showInputDialog("Does you car turn over? (Y/N)");
if (ans.equalsIgnoreCase("Y")){
JOptionPane.showInputDialog("Does it run rough? (Y/N)");
if (ans.equalsIgnoreCase("Y")){
JOptionPane.showInputDialog("Did you buy cheap gas (Y/N)");
} else if (ans.equalsIgnoreCase("N")){
JOptionPane.showInputDialog("Does it stop poorly? (Y/N)");
}
}else if (ans.equalsIgnoreCase("N")) {
JOptionPane.showMessageDialog(null, "Your battery is dead");
}else {
JOptionPane.showMessageDialog(null, "ERROR");
}
}
}
基本上,我从来没有重新定义ans
。所以我不得不把 ans =
放在除了最后两个之外的所有 JOptionPane
语句之前。
您没有在每个问题中更改 ans
的值。尝试这样的事情:
import javax.swing.JOptionPane;
public class Helper2 {
public static void main(String[] args) {
helpMe();
}
public static void helpMe() {
String ans = JOptionPane.showInputDialog("Does you car turn over? (Y/N)");
if (ans.equalsIgnoreCase("Y")) {
ans = JOptionPane.showInputDialog("Does it run rough? (Y/N)");
if (ans.equalsIgnoreCase("Y")) {
ans = JOptionPane.showInputDialog("Did you buy cheap gas (Y/N)");
} else if (ans.equalsIgnoreCase("N")) {
ans = JOptionPane.showInputDialog("Does it stop poorly? (Y/N)");
}
} else if (ans.equalsIgnoreCase("N")) {
JOptionPane.showMessageDialog(null, "Your battery is dead");
} else {
JOptionPane.showMessageDialog(null, "ERROR");
}
}
}