Java中的布尔和if/else语句帮助
我试图让用户输入一个输入(显然是他们的姓名和年龄),如果他们小于10岁或大于100岁,我希望它返回到开始,再次询问他们的年龄,直到满足条件,然后继续询问用户名。我知道怎么做,一个布尔值。我不知道如何在if/else语句中实现它。有人能帮我吗Java中的布尔和if/else语句帮助,java,Java,我试图让用户输入一个输入(显然是他们的姓名和年龄),如果他们小于10岁或大于100岁,我希望它返回到开始,再次询问他们的年龄,直到满足条件,然后继续询问用户名。我知道怎么做,一个布尔值。我不知道如何在if/else语句中实现它。有人能帮我吗 public class Person { public static void main(final String[] args) { int age; String name; Scanner
public class Person {
public static void main(final String[] args) {
int age;
String name;
Scanner scan = new Scanner(System.in);
System.out.println("Enter in your age.");
age = scan.nextInt();
if ((age >= 10) && (age < 18)) {
System.out.println("So you're a kid, huh?");
} else if (age < 10) {
System.out.println("How old are you really?");
} else if ((age >= 18) && (age <= 100)) {
System.out.println("So you're an adult, huh?");
} else if (age > 100) {
System.out.println("How old are you really?");
}
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
System.out.println("Enter in your name");
name = in.nextLine();
System.out.println("So you're " + age + " years old and your name is " + name + "?");
}
}
公共类人物{
公共静态void main(最终字符串[]args){
智力年龄;
字符串名;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入您的年龄”);
age=scan.nextInt();
如果((年龄>=10岁)和&(年龄<18岁)){
System.out.println(“那么你是个孩子,是吗?”);
}否则,如果(年龄<10岁){
System.out.println(“你真的多大了?”);
}否则,如果((年龄>=18岁)和((年龄100岁){
System.out.println(“你真的多大了?”);
}
@抑制警告(“资源”)
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入您的姓名”);
name=in.nextLine();
System.out.println(“那么你是“+age+”岁,你的名字是“+name+”?”;
}
}
您需要一个循环:
boolean ageIsCorrect = false;
while (!ageIsCorrect) {
// ask age, if the age is correct, set ageIsCorrect to true
}
您需要一个循环:
boolean ageIsCorrect = false;
while (!ageIsCorrect) {
// ask age, if the age is correct, set ageIsCorrect to true
}
把它放在一个while循环中
while(年龄介于指定的临界值之间)将其放入while循环中
while(年龄介于指定临界值之间)在不满足条件时使用
while
循环:
boolean conditionMet = false;
while(!conditionMet) {
// ...
else if (age >= 18 && age <= 100) {
System.out.println("So you're an adult, huh?");
conditionMet = true; // the condition is met => exit the loop
}
// ...
}
boolean conditionMet=false;
while(!conditionMet){
// ...
否则,如果(年龄>=18&&age)退出循环
}
// ...
}
在不满足条件时使用while
循环:
boolean conditionMet = false;
while(!conditionMet) {
// ...
else if (age >= 18 && age <= 100) {
System.out.println("So you're an adult, huh?");
conditionMet = true; // the condition is met => exit the loop
}
// ...
}
boolean conditionMet=false;
while(!conditionMet){
// ...
否则,如果(年龄>=18&&age)退出循环
}
// ...
}
只需在第一次扫描和if语句周围放置一个while循环
boolean validAge = false;
while (!validAge) {
System.out.println("Enter in your age.");
age = scan.nextInt();
if ((age >= 10) && (age < 18)) {
System.out.println("So you're a kid, huh?");
} else if (age < 10) {
System.out.println("How old are you really?");
} else if ((age >= 18) && (age <= 100)) {
System.out.println("So you're an adult, huh?");
validAge = true;
} else if (age > 100) {
System.out.println("How old are you really?");
}
}
boolean validAge=false;
而(!有效期){
System.out.println(“输入您的年龄”);
age=scan.nextInt();
如果((年龄>=10岁)和&(年龄<18岁)){
System.out.println(“那么你是个孩子,是吗?”);
}否则,如果(年龄<10岁){
System.out.println(“你真的多大了?”);
}否则,如果((年龄>=18岁)和((年龄100岁){
System.out.println(“你真的多大了?”);
}
}
只需在第一次扫描和if语句周围放置一个while循环
boolean validAge = false;
while (!validAge) {
System.out.println("Enter in your age.");
age = scan.nextInt();
if ((age >= 10) && (age < 18)) {
System.out.println("So you're a kid, huh?");
} else if (age < 10) {
System.out.println("How old are you really?");
} else if ((age >= 18) && (age <= 100)) {
System.out.println("So you're an adult, huh?");
validAge = true;
} else if (age > 100) {
System.out.println("How old are you really?");
}
}
boolean validAge=false;
而(!有效期){
System.out.println(“输入您的年龄”);
age=scan.nextInt();
如果((年龄>=10岁)和&(年龄<18岁)){
System.out.println(“那么你是个孩子,是吗?”);
}否则,如果(年龄<10岁){
System.out.println(“你真的多大了?”);
}否则,如果((年龄>=18岁)和((年龄100岁){
System.out.println(“你真的多大了?”);
}
}
大致如下:
private static int readAndCheck() {
// read age and validate, upon failure return -1
}
public static void main(final String[] args) {
int age = -1;
while (age == -1) {
age = readAndCheck();
}
System.out.println("So you're " + age + " years old and your name is " + name + "?");
}
大致如下:
private static int readAndCheck() {
// read age and validate, upon failure return -1
}
public static void main(final String[] args) {
int age = -1;
while (age == -1) {
age = readAndCheck();
}
System.out.println("So you're " + age + " years old and your name is " + name + "?");
}
你应该在
while
循环中这样做。我认为这比其他答案更简单、更好:
int age = 0;
while (age<10 || age>100){
age = scan.nextInt();
}
string username = scan.next();
...
int-age=0;
而(100岁){
age=scan.nextInt();
}
字符串username=scan.next();
...
你应该在while
循环中这样做。我认为这比其他答案更简单、更好:
int age = 0;
while (age<10 || age>100){
age = scan.nextInt();
}
string username = scan.next();
...
int-age=0;
而(100岁){
age=scan.nextInt();
}
字符串username=scan.next();
...
由于正在循环,请将提示代码放入循环中。使用布尔值退出循环
boolean goodAnswer = false;
do
{
System.out.println("Enter in your age.");
...
if ((age >= 10) && (age 100)
{
... // do not set goodAnswer, because the answer was not good
}
} while (!goodAnswer);
布尔值goodAnswer=false;
做
{
System.out.println(“输入您的年龄”);
...
如果(年龄>=10岁)和(年龄100岁)
{
…//不要设置好答案,因为答案不好
}
}既然正在循环,请将提示代码放入循环中。使用布尔值退出循环 boolean goodAnswer = false; do { System.out.println("Enter in your age."); ... if ((age >= 10) && (age 100) { ... // do not set goodAnswer, because the answer was not good } } while (!goodAnswer); 布尔值goodAnswer=false; 做 { System.out.println(“输入您的年龄”); ... 如果(年龄>=10岁)和(年龄100岁) { …//不要设置好答案,因为答案不好 }
}而(!goodAnswer);您的代码实际上需要更好地封装以检查年龄 使用名为
isValidAge(age)
的方法返回true
或false
结果,然后您可以编写:
int age = 0;
while(!isValidAge(age)){
System.out.println("Please try again! Not a valid age (for an adult)");
... read in the age using scanner...
}
一般来说,如果else()语句比较混乱,并且不能很好地扩展维护,那么它们并不总是最好的选择。您的代码实际上需要更好地封装以检查使用期限 使用名为
isValidAge(age)
的方法返回true
或false
结果,然后您可以编写:
int age = 0;
while(!isValidAge(age)){
System.out.println("Please try again! Not a valid age (for an adult)");
... read in the age using scanner...
}
一般来说,如果else()语句凌乱且不能很好地扩展-从维护角度来看,它们并不总是最佳选择。您需要一个while循环,在该循环中,您可以检查年龄,并应提供帮助。您需要一个while循环,在该循环中,您可以检查年龄,并应提供帮助