[英]Using a nested if and else if statement inside of a while statement
我遇到了让程序执行我需要做的事情的问题。 代码中没有语法错误。
首先,我将程序设置为要求用户最多输入3次名字和姓氏,如果他们愿意,用户应该能够尽早结束输入。
有没有一种方法可以放入System.out.print(“您要添加新名称(Y / N)”); 在if语句之外? 因此,在输入第三个名称或输入两个名称并键入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.
}
}
}
}
改为使用do:
public static void main(String test[]) {
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
int AddName = 0;
do {
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;
}
} while (AddName < 3);
}
您的第二个变量从不使用:
String newnamee = scanner.next(); //<-- remove the declaration
newname = scanner.next();//<-- try this instead
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.