Java中的Do while statent出现问题
我需要计算物体到达地面前的速度和位置 我相信除了Do while语句(我必须使用)之外,我可以处理其他所有事情。Java中的Do while statent出现问题,java,do-while,Java,Do While,我需要计算物体到达地面前的速度和位置 我相信除了Do while语句(我必须使用)之外,我可以处理其他所有事情。 我只需要在正确的方向上戳一下,或者至少告诉我为什么这样做:用户输入应该大于600,否则程序应该有错误消息,并要求用户重试,直到输入正确的值。 我的问题是,即使我选择700,我仍然会收到错误消息,而我不应该收到。HEIGHTTHRESHOLD是一个设置为600的公共常量。 我没有发布我的整个程序,因为我只需要这部分的指针 public static int initialPositi
我只需要在正确的方向上戳一下,或者至少告诉我为什么这样做:用户输入应该大于600,否则程序应该有错误消息,并要求用户重试,直到输入正确的值。
我的问题是,即使我选择700,我仍然会收到错误消息,而我不应该收到。HEIGHTTHRESHOLD是一个设置为600的公共常量。
我没有发布我的整个程序,因为我只需要这部分的指针
public static int initialPosition() {
Scanner keyboard= new Scanner (System.in);
System.out.println("Enter the initial position (Must be over 600 feet)");
int position = keyboard.nextInt();
do {
System.out.println("Error- Position is too low! Try Again");
System.out.println("Enter the initial position "
+ "(Must be over 600 feet)");
keyboard.nextInt();
break;
}while (position>HEIGHTTHRESHOLD);
return position;
}
尝试使用:
if(position>HEIGHTTHRESHOLD){
do {
System.out.println("Error- Position is too low! Try Again");
System.out.println("Enter the initial position "
+ "(Must be over 600 feet)");
position = keyboard.nextInt();
break;
}
}while (position>HEIGHTTHRESHOLD);}
while在这种情况下会更好,但是如果您需要这个…一个do{}while()
语句将在第一次执行时甚至不检查条件。只有在不满足条件的情况下,才会重复
只需使用while(){}
语句
如果您的作业需要使用do while
,我建议:
boolean postiionEntered = false;
int position
do{
position = keyboard.nextInt();
if(position<HEIGHTTHRESHOLD){
System.out.println("Error- Position is too low! Try Again");
System.out.println("Enter the initial position "
+ "(Must be over 600 feet)");
else{positionEntered = true;}
}
while(positionEntered == false)
return position;
boolean positionentered=false;
内部位置
做{
位置=键盘.nextInt();
如果(位置考虑阅读Oracle java教程(重点关注)
do
{
……废话
位置=键盘.nextInt();
}同时(位置<601)
//注意!只有在输入被删除时,您才继续请求输入
//小于最小值
正如利亚姆所说,循环至少执行一次。因此,您需要确保运行整个逻辑,并查看第一次和第N次将发生什么。
避免使用“break”和其他“getoutmyloop”语句,除非你真的必须这样做
在我的书中,这样的东西似乎更好:
public static int initialPosition() {
Scanner keyboard= new Scanner (System.in);
System.out.println("Enter the initial position (Must be over 600 feet)");
do {
int position = keyboard.nextInt();
if (position < HEIGHTTHRESHOLD) {
System.out.println("Error- Position is too low! Try Again");
System.out.println("Enter the initial position "
+ "(Must be over 600 feet)");
}
}while (position<HEIGHTTHRESHOLD);
return position;
public static int initialPosition(){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入初始位置(必须超过600英尺)”;
做{
int position=keyboard.nextInt();
如果(位置<高度阈值){
System.out.println(“错误-位置太低!请重试”);
System.out.println(“输入初始位置”
+“(必须超过600英尺)”;
}
}while(positiondo{…}while
;其中{…}
块至少执行一次。因此专业提示:不要透露您正在寻求家庭作业方面的帮助。大多数“家庭作业问题”低质量和你的可能会与他们一起聚合,得到比它更多的否决权。不要把中断放在do-while循环的中间。作为写,它不是一个循环,因为它只会“循环”。有一次。我只是想感谢大家的帮助!我想我现在有我需要的了。非常感谢大家!你们真是太棒了!成功了!非常感谢!
public static int initialPosition() {
Scanner keyboard= new Scanner (System.in);
System.out.println("Enter the initial position (Must be over 600 feet)");
do {
int position = keyboard.nextInt();
if (position < HEIGHTTHRESHOLD) {
System.out.println("Error- Position is too low! Try Again");
System.out.println("Enter the initial position "
+ "(Must be over 600 feet)");
}
}while (position<HEIGHTTHRESHOLD);
return position;