当前位置: 首页 > 面试题库 >

Java中if语句的详细列表

柳深
2023-03-14
问题内容

抱歉,找不到答案,我几乎可以肯定有人提出过这个问题。

我的问题是我正在编写一些系统库来运行嵌入式设备。我有可以通过无线电广播发送到这些设备的命令。这只能通过文本来完成。在系统库中,我有一个线程来处理看起来像这样的命令

if (value.equals("A")) { doCommandA() }
else if (value.equals("B")) { doCommandB() } 
else if etc. 

问题在于,要执行的命令很多,很快就会变成无法控制的事情。在几个月的时间里,看起来很可怕,调试起来很痛苦,而且难以理解。


问题答案:

使用命令模式:

public interface Command {
     void exec();
}

public class CommandA() implements Command {

     void exec() {
          // ... 
     }
}

// etc etc

然后构建一个Map<String,Command>对象并用Command实例填充它:

commandMap.put("A", new CommandA());
commandMap.put("B", new CommandB());

那么你可以将if / else if链替换为:

commandMap.get(value).exec();

编辑

你还可以添加诸如UnknownCommand或的特殊命令NullCommand,但是你需要一个CommandMap处理这些特殊情况的命令,以最大程度地减少客户的检查。



 类似资料:
  • 本文向大家介绍详解java中if语句和switch的使用,包括了详解java中if语句和switch的使用的使用技巧和注意事项,需要的朋友参考一下 if语句 说起if语句,那么不得不提起三元运算符 a>b?c=0:c=1; 如果a>b结果为true,那么c=0,为false,c=1 那么下面看下if语句 if(a>b)c=0; 如果a>b为true,那么c=0 是不是觉得很像,但是还是觉得有一点不

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

  • 问题内容: 我知道有一种写简短形式的Java 语句的方法。 有谁知道如何将上述5行的缩写写成一行? 问题答案: 使用三元运算符: 我认为您的条件倒退了-如果为空,则希望该值为“ N / A”。 如果城市为空怎么办?在这种情况下,您的代码*打了床。我还要添加另一张支票:

  • 我有这样的想法: 并想做添加到像这样的地方: 简而言之:如果secondValue的值不同于“0”,我不想设置生成器。相等(第二列)。如果可能的话,我想在构建器内部使用它,因为这个构建器非常长,所以我想避免代码重复。 问题是,如果条件不能在分号后为空,从另一方面来说,我不能在这个生成器表达式中使用正常的如果(秒值!=0)。 你能帮我吗?

  •  if 语句,就是类似于「如果○○的话,做●●」,根据条件判断脚本的一部分是否执行的语法。  语法如下: if(expression) 语句或语句块 else 语句或语句块  第一个“语句或语句块”是当 expression 表达式的结果为真时执行的部分,第二个“语句或语句块”则是结果为假时执行的部分。如果不需要 else 以后的部分,可以省略。 例: if(a==b) inform("a和b相等

  • 本文向大家介绍MySQL load语句详细介绍,包括了MySQL load语句详细介绍的使用技巧和注意事项,需要的朋友参考一下 load的语法 LOAD DATA INFILE语句用于高速地从一个文本文件中读取行,并装入一个表中。文件名称必须为一个文字字符串。 由character_set_database系统变量指示的字符集被用于解释文件中的信息。SET NAMES和character_set_