需要重新提示一条语句,但我的代码继续到下一条语句,
Need to reprompt a statement, but my code continues to the next statement,
在 while 语句中,当你输入错误的方向后,我得到一个错误,然后继续下一个问题。我如何格式化它以重新提示有效方向?不知道我是否应该使用 do while 对我来说这似乎是正确的方法,但它似乎不起作用
import javax.swing.JOptionPane;
public class taxiService {
public static void main(String [] args) {
//Declare constants
double fareCharge = 5;
double totalMiles = 0;
double finalFareCharged = 0;
double finalxCoord = 0;
double finalyCoord = 0;
double numOfMiles = 0;
double finalCoord = 0;
String error = "Invalid data, please enter valid data!";
String directions = "";
boolean reprompt = true;
//Prompt for direction and miles
while (reprompt) {
totalMiles = numOfMiles + numOfMiles;
directions = JOptionPane.showInputDialog(null, "Please enter a direction: ");
if (directions.equalsIgnoreCase("East")) {
finalxCoord = finalxCoord + numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("West")) {
finalxCoord = finalxCoord - numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("North")) {
finalyCoord = finalyCoord + numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("South")) {
finalyCoord = finalyCoord - numOfMiles;
reprompt = false;
}
else {
reprompt = true;
JOptionPane.showMessageDialog(null, error);
}
numOfMiles = Double.parseDouble(JOptionPane.showInputDialog(null, "Please enter distance in miles: "));
if (numOfMiles > 0) {
JOptionPane.showMessageDialog(null, "miles: " + totalMiles);
}
else
JOptionPane.showMessageDialog(null, error);
}
}
}
将第二个问题移到循环之外。我认为这是您最初的想法,但将第二个问题放入循环中出现了逻辑错误。
import javax.swing.JOptionPane;
public class taxiService {
public static void main(String [] args) {
//Declare constants
double fareCharge = 5;
double totalMiles = 0;
double finalFareCharged = 0;
double finalxCoord = 0;
double finalyCoord = 0;
double numOfMiles = 0;
double finalCoord = 0;
String error = "Invalid data, please enter valid data!";
String directions = "";
boolean reprompt = true;
//Prompt for direction and miles
while (reprompt) {
totalMiles = numOfMiles + numOfMiles;
directions = JOptionPane.showInputDialog(null, "Please enter a direction: ");
if (directions.equalsIgnoreCase("East")) {
finalxCoord = finalxCoord + numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("West")) {
finalxCoord = finalxCoord - numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("North")) {
finalyCoord = finalyCoord + numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("South")) {
finalyCoord = finalyCoord - numOfMiles;
reprompt = false;
}
else {
reprompt = true;
JOptionPane.showMessageDialog(null, error);
}
}
numOfMiles = Double.parseDouble(JOptionPane.showInputDialog(null, "Please enter distance in miles: "));
if (numOfMiles > 0) {
JOptionPane.showMessageDialog(null, "miles: " + totalMiles);
}else {
JOptionPane.showMessageDialog(null, error);
}
}
}
或
显示错误后添加continue;
JOptionPane。这将强制它跳回到循环的开始并再次提示。
在 while 语句中,当你输入错误的方向后,我得到一个错误,然后继续下一个问题。我如何格式化它以重新提示有效方向?不知道我是否应该使用 do while 对我来说这似乎是正确的方法,但它似乎不起作用
import javax.swing.JOptionPane;
public class taxiService {
public static void main(String [] args) {
//Declare constants
double fareCharge = 5;
double totalMiles = 0;
double finalFareCharged = 0;
double finalxCoord = 0;
double finalyCoord = 0;
double numOfMiles = 0;
double finalCoord = 0;
String error = "Invalid data, please enter valid data!";
String directions = "";
boolean reprompt = true;
//Prompt for direction and miles
while (reprompt) {
totalMiles = numOfMiles + numOfMiles;
directions = JOptionPane.showInputDialog(null, "Please enter a direction: ");
if (directions.equalsIgnoreCase("East")) {
finalxCoord = finalxCoord + numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("West")) {
finalxCoord = finalxCoord - numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("North")) {
finalyCoord = finalyCoord + numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("South")) {
finalyCoord = finalyCoord - numOfMiles;
reprompt = false;
}
else {
reprompt = true;
JOptionPane.showMessageDialog(null, error);
}
numOfMiles = Double.parseDouble(JOptionPane.showInputDialog(null, "Please enter distance in miles: "));
if (numOfMiles > 0) {
JOptionPane.showMessageDialog(null, "miles: " + totalMiles);
}
else
JOptionPane.showMessageDialog(null, error);
}
}
}
将第二个问题移到循环之外。我认为这是您最初的想法,但将第二个问题放入循环中出现了逻辑错误。
import javax.swing.JOptionPane;
public class taxiService {
public static void main(String [] args) {
//Declare constants
double fareCharge = 5;
double totalMiles = 0;
double finalFareCharged = 0;
double finalxCoord = 0;
double finalyCoord = 0;
double numOfMiles = 0;
double finalCoord = 0;
String error = "Invalid data, please enter valid data!";
String directions = "";
boolean reprompt = true;
//Prompt for direction and miles
while (reprompt) {
totalMiles = numOfMiles + numOfMiles;
directions = JOptionPane.showInputDialog(null, "Please enter a direction: ");
if (directions.equalsIgnoreCase("East")) {
finalxCoord = finalxCoord + numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("West")) {
finalxCoord = finalxCoord - numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("North")) {
finalyCoord = finalyCoord + numOfMiles;
reprompt = false;
}
else if (directions.equalsIgnoreCase("South")) {
finalyCoord = finalyCoord - numOfMiles;
reprompt = false;
}
else {
reprompt = true;
JOptionPane.showMessageDialog(null, error);
}
}
numOfMiles = Double.parseDouble(JOptionPane.showInputDialog(null, "Please enter distance in miles: "));
if (numOfMiles > 0) {
JOptionPane.showMessageDialog(null, "miles: " + totalMiles);
}else {
JOptionPane.showMessageDialog(null, error);
}
}
}
或
显示错误后添加continue;
JOptionPane。这将强制它跳回到循环的开始并再次提示。