2013-04-18 145 views
0

可以通过基本类型char(使用foreach循环)的变量进行循环?在JAVA中循环变量

我有三个字符

char char1 = 'A'; 
char charTest = 'P'; 
char character = 'R'; 

目前我有“如果”适用于CHAR1陈述一个长长的清单:

if (char1 == 'A') 
doSomething; 
else if (char1 == 'K') 
doSomethingElse; 
else if (charPrev == 'G') 
    doSomethingAgain; 
else 
    doSomethingYetAgain; 

不过,我将申请相同的一组“如果”的对其他字符变量(在本例中为charTest和字符)的语句。

什么是简单的方法来实现这一点?感谢您的任何意见!

+0

你试过开关了吗? – 2013-04-18 02:52:25

回答

6

最简单的方法是将你的变量放到数组中并循环。类似于

char[] charArray = {char1, charTest, character}; 

// Essentially this says, for each char in charArray 
for (char character : charArray) { 
    if (character == 'A') 
     // Do Something 
    else if (character == 'K') 
     // Do Something 
    else 
     // Do Something 
} 
+1

不下调,但切换效果更好。 – 2013-04-18 03:03:13

+1

问题不是关于逻辑陈述,而是关于将相同的逻辑应用于多个变量。我只是用'if'语句导致他们在原始代码中拥有的东西。 – TheMerovingian 2013-04-18 03:05:00

+0

很抱歉,如果这种说法很粗鲁,我只是在说些什么,但它听起来很粗鲁。 – TheMerovingian 2013-04-18 03:11:41

2

您可以将您的字符传递给运行开关的方法。

public static void main(String[] args) { 
    char char1 = 'A'; 
    char char2 = 'B'; 
    doStuff(char1); 
    doStuff(char2); 
    } 

    public static void doStuff (char a) 
    { 
     switch (a) { 
     case 'A': 
      doSomething(); 
      break; 
     case 'B': 
      doSomethingElse(); 
      break; 
     default: 
      dontDoAnything(); 
      break; 
     } 
     return; 
    } 
+0

案例:不正确 – Abi 2013-04-18 02:59:00

+0

Bah!语法.... – 2013-04-18 02:59:32

+0

我会将Main方法上的char defs更改为Array(List),然后对每个循环执行A. – 2013-04-18 03:00:51

0

在Java中创建字符数组:在使用“每个”条款字符数组

char[] characters = {'a', 'b', 'c'}; 

要循环,因为你“如果长长的清单”,我建议你使用开关:

for(char character : characters){ 
    switch(character){ 
      case 'a' : 
      //do something 
      break; 
      case 'b' : 
      //do something 
      break; 
      .. 
      .. 
    } 
}