我正在进行一项任务,其中指出:
在编写迭代解决方案时,do while循环不应该是您的首选。作为一般规则,如果您可以使用while循环合理地解决问题,那么您应该这样做。话虽如此,我们没有理由不能一点点练习。
要求用户输入他们喜欢的名字列表。我们将只考虑这个练习中的一个单词名称。用户应该继续输入,直到输入“x”作为名称。使用do-while循环来获取所有名称。当循环退出时,输出一个字符串,其中包含每个逗号分隔的第一个首字母。
我遇到的问题是输出名字的第一个字母并结束do-while循环。这是我到目前为止的代码:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String name;
String first = "";
System.out.println("Please enter a list of name: ");
name = in.nextLine();
do {
name.charAt(0);
first = first += name.charAt(0);
name = in.nextLine();
if(first != "") {
first = first + ",";
}
} while(name != "x");
System.out.println("The first intial if each name is " + name);
}
}
答案 0 :(得分:0)
你甚至试图在do while循环的第一行做什么?请记住,charAt()
会返回一个值;在不将返回值赋给变量的情况下调用它会导致语法错误。使用while循环。在循环中取出第一个输入OUTSIDE。
System.out.println("Enter a name...end with 'x'");
String first=""; //don't forget to initialize
String name = in.nextLine(); //first name taken
while(!name.equalsIgnoreCase("x")){
first+= name.charAt(0)+", ";
System.out.println("Enter a name...end with 'x'");
name = in.nextLine();
}
System.out.println(first);
答案 1 :(得分:0)
您应该将字符串与volatile
进行比较,而不是与s1.equals(s2)
进行比较,而不是:
==
使用
while(name != "x");
而不是:
while (!name.equals("x"));
使用
if(first != "") {
答案 2 :(得分:0)
您可以将列表用于下一个用法。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
List<String> names = new ArrayList();//To store entered nemes.
System.out.println("Enter the first name. (use char 'x' to to finish)");
String name = in.nextLine();// Get the name for first time.
while (!name.equalsIgnoreCase("x")) {
names.add(name);// Add name to list.
System.out.println("Enter next name. (use char 'x' to to finish)");
name = in.nextLine();// Get the next names.
}
names.forEach((n) -> {// For each names get first character and print it.
System.out.println("The first char of '" + n + "', is: " + n.charAt(0));
});
}
输入名字。 (使用char'x'完成)
菊花
输入下一个名字。 (使用char'x'完成)
玫瑰
输入下一个名字。 (使用char'x'完成)
紫
输入下一个名字。 (使用char'x'完成)
X
“黛西”的第一个字母是:D
“玫瑰”的第一个字母是:R
'Violet'的第一个字母是:V
总时间:1:18.969s
完成于:2月20日星期一12:40:25 IRST 2017