当前位置: 首页 > 知识库问答 >
问题:

Java-使用if/else和switch语句将名称与名称列表进行比较

奚飞星
2023-03-14

我是一个初学者,正在试图弄清楚如何使用嵌套的if/else和switch语句。我决定挑战自己,编写两个程序(一个用if/else和一个用switch),将一个人的名字与至少15个人的名字进行比较。如果这1个名字与其他15个名字中的任何一个匹配(除了那个人自己的名字之外),它将打印一些东西。例如,这15个名字将是一个足球队中每个人的名字。我想看看队里是否有人和他们同名。对于if/else程序,我目前有以下内容:

package practice;

    public class ClassmatesIfElse {

        public static void main(String[] args) {
            String name = "person";
            if(name.equals("person1")|| name.equals("person2") || name.equals("person3") || name.equals("person4") || name.equals("person5") || name.equals("person6") || name.equals("person7") || name.equals("person8") || name.equals("person10"))
                System.out.println("Duplicate");
            else System.out.println("Unique");
        }

    }

共有1个答案

单于耘豪
2023-03-14

因此,我同意以下评论:如果您正在寻找最有效的方法来确定15个名称中是否有重复项,那么您将希望使用嵌套if/then语句或开关以外的其他方法。实际上,我建议对这种工作使用一个映射,将名称存储为键,将其外观计数存储为值(我很乐意创建一个这样的示例;只要让我知道就行了)。

但是,为了回答如何使用switch语句执行相同代码的问题,请参阅下面的内容。代码实际上很长,但可能更容易阅读:

class SwitchExample {

    private static final String SUCCESS= "Hey! You have a name doppleganger in the class!";

    public static void main(String[] args) { 
        String name = "person";

        switch(name) {
        case "person1":
            System.out.println(SUCCESS);
            break;

        case "person2":
            System.out.println(SUCCESS);
            break;

        case "person3":
            System.out.println(SUCCESS);
            break;

        case "person4":
            System.out.println(SUCCESS);
            break;

        case "person5":
            System.out.println(SUCCESS);
            break;

        case "person6":
            System.out.println(SUCCESS);
            break;

        case "person7":
            System.out.println(SUCCESS);
            break;

        case "person8":
            System.out.println(SUCCESS);
            break;

        case "person10":
            System.out.println(SUCCESS);
            break;

        default:
             System.out.println("Your name is unique in this class!");

        }
    }
}
 类似资料:
  • 问题内容: 我正在用Java制作轮盘赌(我自己的版本),而玩家可以打赌的类型之一就是选择将要滚动的颜色。(偶数是黑色,奇数是红色)。有没有一种方法可以使用switch语句将字符串与枚举进行比较? 这就是我想要得到的,但这并不是让我在switch语句中使用枚举“颜色”。 问题答案: 您必须具有要在其上进行切换的枚举类型的实例(其 成员 )。您正在尝试打开Enum类本身,这是没有意义的构造。所以你可能

  • 问题内容: 我正在尝试使用准备好的语句来设置表名以从中选择数据,但是执行查询时,我总是收到错误消息。 错误和示例代码如下所示。 有什么想法可能导致这种情况? 问题答案: 表名不能用作参数。它必须是硬编码的。因此,你可以执行以下操作:

  • 主要内容:if 结构,if-else 结构,多条件 if-else-if 语句,嵌套 if 的使用Java 支持两种选择语句:if 语句和 switch 语句。其中 if 语句使用布尔表达式或布尔值作为分支条件来进行分支控制,而 switch 语句则用于对多个整型值进行匹配,从而实现分支控制。这些语句允许你只有在程序运行时才能知道其状态的情况下,控制程序的执行过程。如果你没有 C/ C++ 的编程背景,你将会为这两个语句的强大功能和灵活性而感到吃惊。 选择结构(也叫分支结构)解决了顺序结构不能

  • 着色器语言GLSL中关于if语句、for语句的使用,和javascript语言、C语言中的if语句、for语句执行逻辑规则基本一致,这里默认你已经有一定的编程基础,也就不做过多讲解,只是简单说明一下。 单独使用if if(x>100){ gl_FragColor = vec4(1.0,0.0,0.0,1.0);//红色 } if-else形式 bool colorBool; // 根据布尔值

  • 问题内容: 我正在从API检索JSON。我正在使用newtonsoft(这是json.net吗?)将其反序列化为对象列表。有用。 不幸的是,我还需要将此作为JSON传递给其他人(只有我有权访问它们,他们才能直接调用API)。不幸的是,我说这是因为我需要输出与接收到的JSON不同的JSON(属性名称必须不同)。 例如,我有一个名为Person的类,具有一个名为Name的属性。我想获取“人物”,因此我

  • 问题内容: 我正在尝试执行这样的mysql查询 它显示这样的错误 我该如何实现? 问题答案: 在查询中动态表名的使用最好与 Prepared Staments一起使用 ,在mysql中也可以使用串联功能 您也可以针对删除查询执行此操作