2013-04-18 141 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; 
      .. 
      .. 
    } 
}