Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何再次请求用户';如果用户没有正确地将其年龄输入控制台,则为s年龄?_Java - Fatal编程技术网

Java 如何再次请求用户';如果用户没有正确地将其年龄输入控制台,则为s年龄?

Java 如何再次请求用户';如果用户没有正确地将其年龄输入控制台,则为s年龄?,java,Java,我目前从一开始就在学习Java 当我在做一些练习时,我遇到了这个项目挑战,我不知道该做什么 该程序只需询问用户的年龄和姓名 它检查年龄是否小于0,如果小于0,它会要求用户输入正确的年龄,一旦用户插入了正确的年龄,它会继续询问用户名 但我不知道如何实现这一点 下面是我写的代码,如果我运行它,它会显示消息“错误的年龄。请输入正确的年龄。”并立即询问用户名 有人能给我介绍一下吗 多谢各位 public class Person { private int age; private St

我目前从一开始就在学习Java

当我在做一些练习时,我遇到了这个项目挑战,我不知道该做什么

该程序只需询问用户的年龄和姓名

它检查年龄是否小于0,如果小于0,它会要求用户输入正确的年龄,一旦用户插入了正确的年龄,它会继续询问用户名

但我不知道如何实现这一点

下面是我写的代码,如果我运行它,它会显示消息“错误的年龄。请输入正确的年龄。”并立即询问用户名

有人能给我介绍一下吗

多谢各位

public class Person {
    private int age;
    private String name;

    public void setAge(int _age) {

        if (_age < 0) {
            System.out.println("Wrong age. Please input correct age.");
            return;
        }

        age = _age;
    }

    public void setName(String _name) {
        name = _name;
    }


    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

}

您可以使用以下代码片段

do {
    System.out.println("Please enter the age: ");
    p1.setAge(scan.nextInt());
} while(p1.getAge() < 0);
do{
System.out.println(“请输入年龄:”);
p1.设置(scan.nextInt());
}而(p1.getAge()<0);

您应该为此使用循环

您可以更改
setAge()
的定义,如下所示:

public boolean setAge(int _age) {

    if (_age < 0) {
        System.out.println("Wrong age. Please input correct age.");
        return false;
    }

    age = _age;
    return true;
}
while(!p1.setAge(scan.nextInt()));
...
while(!p2.setAge(scan.nextInt()));
下面是完整的代码。请看:

班级人员{
私人互联网;
私有字符串名称;
公共布尔设置(整型){
如果(_年龄<0){
System.out.println(“错误的年龄。请输入正确的年龄”);
返回false;
}
年龄=_年龄;
返回true;
}
public void setName(字符串_name){
名称=_名称;
}
公共整数getAge(){
回归年龄;
}
公共字符串getName(){
返回名称;
}
}
课堂范例02{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
人员p1=新人员();
System.out.println(“请输入年龄:”);
而(!p1.setAge(scan.nextInt());
System.out.println(“请输入名称:”);
p1.setName(scan.next());
人员p2=新人员();
System.out.println(“请输入年龄:”);
而(!p2.setAge(scan.nextInt());
System.out.println(“请输入名称:”);
p2.setName(scan.next());
System.out.println(p1.getName()+“/”+p1.getAge());
System.out.println(p2.getName()+“/”+p2.getAge());
}
}

使用礼貌的
做。。。while()。从有效年龄未知的条件开始,循环询问年龄的操作,直到知道有效年龄。如果年龄在类Person中初始化:
int age=-1。非常感谢!:D@StephaneM如果使用任何值初始化
age
,这甚至会起作用,就像在执行
do
块中的主体时检查条件一样
while(!p1.setAge(scan.nextInt()));
...
while(!p2.setAge(scan.nextInt()));
class Person {
    private int age;
    private String name;

    public boolean setAge(int _age) {

        if (_age < 0) {
            System.out.println("Wrong age. Please input correct age.");
            return false;
        }

        age = _age;
        return true;
    }

    public void setName(String _name) {
        name = _name;
    }


    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

}

class Example02 {
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        Person p1 = new Person();
        System.out.println("Please enter the age: ");
        while(!p1.setAge(scan.nextInt()));
        System.out.println("Please enter the name: ");
        p1.setName(scan.next());

        Person p2 = new Person();
        System.out.println("Please enter the age: ");
         while(!p2.setAge(scan.nextInt()));
        System.out.println("Please enter the name: ");
        p2.setName(scan.next());

        System.out.println(p1.getName() + " / " + p1.getAge());
        System.out.println(p2.getName() + " / " + p2.getAge());
    }
}