我正在创建一个Java项目,使用do-while循环从用户那里获取一个介于5到15之间的数字。在此之后,我将使用用户输入的数字创建一个正方形和三角形。
我现在只能重复我的问题。在我运行程序后,它运行良好,直到我输入一个数字,第二次提示用户输入一个数字。如果号码无效或无效,则不会打印。
我试着移动第二个“输入数字...”里面的do-loop,但那只是印有“对不起,无效”的提示。我对while循环中的case语句做了类似的操作,它运行得很好,但是我在do循环中遇到了困难。
谁能给我指明正确的方向吗?
import java.util.Scanner;
public class doLoop {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int number;
int minimum = 5;
int maximum = 15;
System.out.print("Enter a number between " + minimum + " and " + maximum + ":" );
do {
number = input.nextInt();
if (number >= minimum && number <= 15)
break;
else
System.out.print("Sorry, invalid");
break;
} while (false);
System.out.print("\nEnter a number between " + minimum + " and " + maximum + ":" );
number = input.nextInt();
}
}
在您的代码中,中断和扫描输入的位置有一个逻辑错误。如果你真的想保持真实,我发现只添加一个boolean检查而不是使用break要简单得多。在下面,你可以看到我也把final,这样你就知道了,这是一个最佳实践,这个变量不应该在代码中被修改或篡改。我添加了一个布尔值,因为您希望检查do while是否为false,然后如果它通过了您所做的if语句,我们将它设置为true。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
boolean check = false;
// Final, because they are constant through-out the program
final int minimum = 5;
final int maximum = 15;
do {
System.out.print("Enter a number between " + minimum + " and " + maximum + ":" );
number = input.nextInt();
if (number >= minimum && number <= maximum)
check = true;
else
System.out.println("Sorry, invalid");
break;
} while (check);
}
通常,在while循环中使用break
被认为是一种糟糕的做法。你应该有这样的东西
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
int minimum = 5;
int maximum = 15;
do{
System.out.print("Enter a number between" + " " + minimum + " " + "and" + " " + maximum + ":" );
number = input.nextInt();
if (number < minimum || number > maximum)
System.out.print("Sorry, invalid");
} while (number < minimum || number > maximum);
}
我仍在学习java编程,请原谅我的知识不足。这可能是有史以来最简单的事情,但我一辈子都想不出更好的方法来循环checkTaskDescription方法,直到用户输入的描述低于字符限制。到目前为止,这是我能够做到的唯一方法,但它显然会重复输入对话框两次。 这是执行它的部分 这是正在执行的checkTaskDescription方法:
问题内容: 我需要让用户输入一个数字以用作范围的开始,然后输入另一个数字作为范围的结束。起始编号必须为0或更大,结束编号不能大于1000。两个数字都必须被10整除。我找到了满足这些条件的方法,但是如果不满足这些条件,我的程序只会告诉用户他们的输入不正确。我是否可以对它进行编码,以便在用户输入后进行检查以确保满足条件,如果条件没有环回,请再次输入。这是我到目前为止的代码。 问题答案: 轻松做:
问题内容: 我正在尝试编写一个数字猜测程序,如下所示: 我现在想做的是让if / elif / else命令序列循环执行,直到用户输入“正确”为止,即程序声明的数字大约等于用户数,但是如果我不知道用户数量,我无法想到如何实现和if语句,并且尝试使用“ while”也无效。 问题答案: 作为@Mark Byers方法的替代方法,可以使用:
我需要要求用户输入一个数字作为范围的开始,然后输入另一个数字作为范围的结束。开始数必须大于等于0,结束数不能大于1000。两个数字都必须能被10整除。我已经找到了满足这些条件的方法,但是如果不满足这些条件,我的程序只会告诉用户他们的输入不正确。我是否可以对其进行编码,以便在用户输入后,它将检查以确保满足条件,如果不满足条件,则返回并再次输入。这是我目前掌握的代码。
我需要用while循环修改程序,以不断提示用户输入密码。def user_input():“”从用户“”获取输入input1=input(“输入密码”)(如果长度检查(input1)!=真或字符检查(输入1)!=True:exit()elif length\u check(input1)和char\u check(input1):input2=input(“重新输入密码:”) DEFcheck_p