Java 如何不重复else语句 公共类数组{ 公共静态void main(字符串[]args){ 字符串名[]={“约翰”、“玛丽”、“彼得”}; Scanner myScanner=新扫描仪(System.in); 系统输出打印(“输入名称:”); 字符串nameintered=myScanner.nextLine(); 对于(inti=0;i
您可以使用continue或break语句Java 如何不重复else语句 公共类数组{ 公共静态void main(字符串[]args){ 字符串名[]={“约翰”、“玛丽”、“彼得”}; Scanner myScanner=新扫描仪(System.in); 系统输出打印(“输入名称:”); 字符串nameintered=myScanner.nextLine(); 对于(inti=0;i,java,arrays,for-loop,if-statement,Java,Arrays,For Loop,If Statement,您可以使用continue或break语句 public class array { public static void main(String[] args) { String names[] = {"John", "Mary", "Peter"}; Scanner myScanner = new Scanner(System.in); System.out.print("Enter name: "); String
public class array {
public static void main(String[] args) {
String names[] = {"John", "Mary", "Peter"};
Scanner myScanner = new Scanner(System.in);
System.out.print("Enter name: ");
String nameEntered = myScanner.nextLine();
for (int i = 0; i <= names.length; i++) {
if (nameEntered.equals(names[i])) {
System.out.println(names[i] + " is a common name.");
} else {
System.out.println(nameEntered + " is not a common name.");
}
}
}
}
公共类数组{
公共静态void main(字符串[]args){
字符串名[]={“约翰”、“玛丽”、“彼得”};
Scanner myScanner=新扫描仪(System.in);
系统输出打印(“输入名称:”);
字符串nameintered=myScanner.nextLine();
对于(int i=0;i,根据您的评论,我已编辑了答案。您必须使用评论中建议的标志。请参阅下文-
public class array {
public static void main(String[] args) {
String names[] = {"John", "Mary", "Peter"};
Scanner myScanner = new Scanner(System.in);
System.out.print("Enter name: ");
String nameEntered = myScanner.nextLine();
for (int i = 0; i <= names.length; i++) {
if (nameEntered.equals(names[i])) {
System.out.println(names[i] + " is a common name.");
} else {
System.out.println(nameEntered + " is not a common name.");
continue;
}
}
}
}
请参阅下面附带的输出屏幕截图-
代码可以通过以下方式访问。首先,您可以避免循环(但仅限于Java 8及以上版本)
我不知道你到底在找什么,但对我来说感觉很自然
import java.util.*;
public class HelloWorld{
public static void main(String[] args) {
String names[] = {"John", "Mary", "Peter"};
Scanner myScanner = new Scanner(System.in);
System.out.print("Enter name: ");
String nameEntered = myScanner.nextLine();
boolean nameFound = false;
for (String name : names){
if (nameEntered.equals(name))
nameFound = true;
}
if(nameFound)
System.out.println(nameEntered + " is a common name.");
else
System.out.println(nameEntered + " is not a common name.");
}
}
使用名为found
的逻辑(布尔)变量,将其初始化为false
。在循环中不打印任何内容,仅在名称匹配时设置found
(之后可以中断
)。根据found
的不同,在循环后进行每次打印,但如何打印出与我输入的字符串匹配的find=true语句?找到匹配的字符串时,只需break
。这会迫使您继续输入新名称,对吗?我只想输入一次名称,它会检查数组。更简单、更整洁!我尝试了此代码,但如果我输入了一个不常见的名称,它不会显示任何输出。很抱歉,您能解释一下(字符串名称:names)的作用和原因吗?以及为什么您不能使用典型的for循环。谢谢。for(字符串名称:names)
是Java中一种简洁/增强的迭代方式。您完全可以用传统的for
循环来代替它,即for(int i=0;i
。请注意,问题中的for
循环超出了范围。如果使用增强方式,则无需担心范围。无论如何,正如您所说,该代码有效,因此请接受并投票表决答案。
import java.util.Arrays;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
String names[] = {"John", "Mary", "Peter"};
Scanner myScanner = new Scanner(System.in);
System.out.print("Enter name: ");
String nameEntered = myScanner.nextLine();
String result = Arrays.stream(names).
filter(nameEntered::equals).
findAny().
map(name -> name + " is a common name.").
orElseGet(() -> nameEntered + " is not a common name.");
System.out.println(result);
}
}