2014-05-17 123 views
-3
public int alphCheck(char check){ 
    switch(check){ 
     case 'a': 
      return 1; 
      break; 
     case 'b': 
      return 2; 
      break; 
     case 'c': 
      return 3; 
      break; 
     case 'd': 
      return 4; 
      break; 
     case 'e': 
      return 5; 
      break; 
     case 'f': 
      return 6; 
      break; 
     case 'g': 
      return 7; 
      break; 
     case 'h': 
      return 8; 
      break; 
     case 'i': 
      return 9; 
      break; 
     case 'j': 
      return 10; 
      break; 
     case 'k': 
      return 11; 
      break; 
     case 'l': 
      return 12; 
      break; 
     case 'm': 
      return 13; 
      break; 
     case 'n': 
      return 14; 
      break; 
     case 'o': 
      return 15; 
      break; 
     case 'p': 
      return 16; 
      break; 
     case 'q': 
      return 17; 
      break; 
     case 'r': 
      return 18; 
      break; 
     case 's': 
      return 19; 
      break; 
     case 't': 
      return 20; 
      break; 
     case 'u': 
      return 21; 
      break; 
     case 'v': 
      return 22; 
      break; 
     case 'w': 
      return 23; 
      break; 
     case 'x': 
      return 24; 
      break; 
     case 'y': 
      return 25; 
      break; 
     case 'z': 
      return 26; 
      break; 

    } 
} 

PS.This在另一個類 做我希望能夠在主類中使用這種方法,輸入一個字母,並返回一個數/索引的方法的方法信。 但我不斷收到:此方法必須返回類型爲int的結果。switch語句另一個類

非常困惑。請幫忙。謝謝。

+4

當'check'與任何'case's不匹配時會發生什麼?那麼該方法返回什麼呢? – MadProgrammer

+3

這很長。更簡單的是'檢查 - ''+ 1'。這是因爲[ASCII](http://www.asciitable.com/)。 – Justin

+1

像這樣編輯你的問題對我來說似乎不太合適:現在,那些對你的問題有所幫助的人看起來很愚蠢,因爲沒有注意到你已經有一個'default:'標籤,實際上你沒有他們回答的時間。 – hvd

回答

5

下面是一個需要考慮的問題:如果輸入的字母不是您描述的情況之一,會發生什麼情況?

雖然可能知道你只是餵食字母,編譯器不知道,並且因爲如果你定義的其中一個案例沒有被擊中,它不知道該返回什麼,結果發出錯誤。你需要放在一個default情況下,讓編譯器知道該方法是保證返回的東西:

switch(check) { 
    case 'a': 
    ... 
    default: 
     // return something or maybe print/throw an error 
} 

這樣做的一個更好的解決辦法可能是使用的事實,chars只是數字不同形成。例如,'a'相當於整數97(請檢查表here以獲取字符表及其ASCII數值等效表)。所以你可以做一個數學訣竅,以獲得相同的結果:

public int alphCheck(char check) { 
    return check - 'a' + 1; 
} 
+0

@ ddgg007:迴應你的編輯,想一想'return'語句的作用。 return語句告訴程序返回調用方法的值,對吧?那麼''return'後面的任何代碼如何執行? – awksp

1

你必須提供返回類型,如return 0;在默認情況下:或者

switch(check) { 
    .. 
    default: 
     return 0; 
}