【发布时间】:2012-04-10 14:31:24
【问题描述】:
我实现了一个字体系统,它通过 char switch 语句找出要使用的字母。我的字体图像中只有大写字母。我需要做到这一点,例如,'a' 和 'A' 都具有相同的输出。与其有 2 倍的案例数量,不如是以下内容:
char c;
switch(c){
case 'a' & 'A': /*get the 'A' image*/; break;
case 'b' & 'B': /*get the 'B' image*/; break;
...
case 'z' & 'Z': /*get the 'Z' image*/; break;
}
这在java中可能吗?
【问题讨论】:
-
我只想指出,我已经很久没有使用 switch 语句了,而且我几乎每天都在编写 Java。原因是我觉得它的风格很糟糕,因为它有点像 goto,而且总是有一个我更喜欢的不同解决方案。在您的情况下,您可以使用 Map 或枚举(这通常是一个很好的替代品)与 boolean matches(char c) 和 File getImage() 方法
-
@MichaelSchmeißer 在这种情况下,您可能还想重新考虑使用 for/while 循环,因为它们是 Goto /s 的另一种形式。这就是为什么它们还包含中断/继续关键字。严肃地说,'switch' 不是 goto,因为它提供了自己的块作用域。它只是工具箱中的另一个工具,对于这个特定的用例,它也是最合适的。
标签: java char switch-statement