java - 在 while 语句内使用嵌套的 if 和 else if 语句

标签 java if-statement while-loop nested-loops

我在让我的程序执行我需要它执行的操作时遇到问题。代码中没有语法错误。

首先,我将程序设置为最多询问用户名字和姓氏 3 次,如果用户愿意,他们应该能够提前结束输入。

有没有办法可以将 System.out.print("Do you Want to add a new name (Y/N)");在 if 语句之外?因此,当我输入第三个名字或输入 2 个名字并输入 N 后,它就会停止。

任何帮助将不胜感激。

import java.util.Scanner;

public class SOF {


 public static void main(String test[]){




    @SuppressWarnings("resource")
    Scanner scanner = new Scanner (System.in);

    System.out.print("Do you want to add a new name (Y/N)");
    String newname = scanner.next();

    int AddName = 0;

    while (AddName < 3) {


        if (newname.equalsIgnoreCase("y")) 
        {


            System.out.println("Enter first name: ");
            String fname = scanner.next();

            System.out.println("Enter last name: ");
            String lname = scanner.next();

            AddName = AddName + 1;

            System.out.print("Do you want to add a new name (Y/N)");
            String newnamee = scanner.next(); //had to add an extra e, since I had two varibles
                                              // with the same time. This might be the issue.
                                              //I'm unsure though



        }

        else if (newname.equalsIgnoreCase("n")) {

            System.out.println("Goodbye");
            AddName = AddName + 3;
        }
    }
}

}

最佳答案

您可以将 System.out.print("Do you Want to add a new name (Y/N)"); 放在 while 循环的开头,如下所示:

import java.util.Scanner;

public class SOF {
public static void main(String test[]){
@SuppressWarnings("resource")
Scanner scanner = new Scanner (System.in);
int AddName = 0;

while (AddName < 3) {
System.out.print("Do you want to add a new name (Y/N)");
String newname = scanner.next();

    if (newname.equalsIgnoreCase("y")) 
    {
        System.out.println("Enter first name: ");
        String fname = scanner.next();
        System.out.println("Enter last name: ");
        String lname = scanner.next();
        AddName = AddName + 1;         

    }

    else if (newname.equalsIgnoreCase("n")) {
        System.out.println("Goodbye");
        AddName = AddName + 3;  //alternatively you can use break statement.
    }
   }
  }
 }

关于java - 在 while 语句内使用嵌套的 if 和 else if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24323516/

相关文章:

bash - 虽然阅读速度非常慢

java - 如何避免此 java 代码的额外输出

java - onSensorChanged() 中的值不会存储在变量中

java - 如何在 Horizo​​ntalview 中将 imageview 显示为 slider ,它将显示为列表但仅关注一个项目

javascript - 我需要帮助在 JS 中编写这个 IF 语句

ios - Swift 中的逻辑问题

java - while 循环中的多个条件的条件顺序是否重要?

java - 在Excel宏中调用或使用java jar模块

java - jclouds-labs azurecompute 获取 ComputeService 对象

r - if/else 语句中的 str_split_fixed : unexpected results