有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何做,边做边循环这段代码?

我有以下java代码:

public class Ages {
public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);  

    int value = 0;
    String name;
    int age;



        System.out.print("Hey, what's your name? ");
        name = keyboard.next();
        System.out.println();

        System.out.print("Ok, " + name + ", how old are you? ");
        age = keyboard.nextInt();
        System.out.println();

           do{
            if(age < 16){
            System.out.println("You can't visit in the museum, " + name + ".");

            if(age < 18);
                 System.out.println("You can't visit in the park, " + name + ".");
            }
            if (age < 25){
                System.out.println("You can't visit if you have a car, " + name + ".");
            }
            if (age >= 25){
                System.out.println("You can do anything, " + 
                    name + ".");

            }
            while(age > 300);
            System.out.println("It's not correct..Try Again, " + name + 
             ".");


            }
}

我需要用户写出错误的答案,他会再次得到问题“你多大了?”,等他再试一次。。 我要做什么? 谢谢你的帮助!!:)


共 (3) 个答案

  1. # 1 楼答案

    Onewhile块不正确,您必须使用:

    System.out.println("It's not correct..Try Again, " + name + ".");
    
    do {
        if (age < 16) {
            System.out.println("You can't visit in the museum, " + name + ".");
    
            if (age < 18);
            System.out.println("You can't visit in the park, " + name + ".");
        }
        if (age < 25) {
            System.out.println("You can't visit if you have a car, " + name + ".");
        }
        if (age >= 25) {
            System.out.println("You can do anything, "
                    + name + ".");
    
        }
        //while(age > 300);<<     wrong position 
    
        System.out.println("It's not correct..Try Again, " + name + ".");
    
    } while (age > 300);//<<     correct position 
    

    两个

    虽然接缝条件不正确,但您必须检查最小和最大年龄,而不仅仅是最大年龄,因此您可以使用:

     while (age < minAge || age > maxAge );
    

    因此,如果年龄小于最小值或最大值,则再次重复最大值

    三个这个如果永远不会执行:

    if (age < 18);//<<        note the ; it mean your if is end
        System.out.println("You can't visit in the park, " + name + ".");
    

    4个

    相反,你可以在循环中阅读年龄:

    System.out.print("Hey, what's your name? ");
    name = keyboard.next();
    System.out.println();
    
    do {
    
        System.out.print("Ok, " + name + ", how old are you? ");
        age = keyboard.nextInt();
        System.out.println();
        ....
    }while(..);
    

    希望这能让你了解你的问题

  2. # 2 楼答案

    请试试这个:

    public class Ages {
        public static void main(String[] args) {
            Scanner keyboard = new Scanner(System.in);
    
            int value = 0;
            int age;
    
            System.out.print("Hey, what's your name? ");
            String name = keyboard.next();
            System.out.println();
    
            while(true) {
                System.out.print("Ok, " + name + ", how old are you? ");
                age = keyboard.nextInt();
                System.out.println();
                if (age <= 300) {
                    break;
                }
                System.out.println("It's not correct..Try Again, " + name +
                ".");
            }
    
            if(age < 16) {
                System.out.println("You can't visit in the museum, " + name + ".");
            }
            if(age < 18){
                System.out.println("You can't visit in the park, " + name + ".");
            }
            if (age < 25){
                System.out.println("You can't visit if you have a car, " + name + ".");
            }
            if (age >= 25){
                System.out.println("You can do anything, " +
                    name + ".");
    
            }
        }
    }
    
  3. # 3 楼答案

    1)应该使用以下条件:if (age >= 25 && age <= 300){而不是 if (age >= 25){

    否则条件为true,即使age超过300并且您不想:

    while(age > 300);
    

    2)如果值不正确,还应允许用户输入新的输入

    age = keyboard.nextInt();应该在循环中

    3)你应该让循环完成。
    在while语句中,可以指定需要用户进行新输入的条件:

    while (age > 300)
    

    这就给出了代码(未测试):

      int age;
      do{
        age = keyboard.nextInt();
    
        if(age < 16){
            System.out.println("You can't visit in the museum, " + name + ".");
        }
        else if(age < 18){
             System.out.println("You can't visit in the park, " + name + ".");
        }
        else if (age < 25){
            System.out.println("You can't visit if you have a car, " + name + ".");
        }
    
        if (age >= 25 && age <= 300){
            System.out.println("You can do anything, " + 
                name + ".");                
        }
        else{
            System.out.println("It's not correct..Try Again, " + name +  ".");
        }
      }                 
      while (age > 300);