2016-09-28 3 views
1

문자열의 문자 정수 위치를 계산하고 싶습니다. 그러나이 메서드를 실행하면 첫 번째 문자 만 계산됩니다.알파벳 정수 위치에서 문자열의 문자를 변환 하시겠습니까?

이 같은 출력이 있어야

를 = 1 + D = 4 + E = 5 일 => 10

private int letterNumber(string letter) 
{ 
    char c = letter[0]; 
    for (int i = 0; i < letter.Length; i++) 
    { 
     c = (char)letter[i]; 
     return char.ToUpper(c) - 64; 
    } 
    return c; 
} 
+1

return 문은 루프에 있으므로 첫 번째 문자 뒤에 취소됩니다. – ThePerplexedOne

답변

0

원하는 동작이 아니므로 루프 내부로 돌아옵니다. 약간의 리팩토링으로 약간 클린업 할 수 있습니다 :

private int letterNumber(string letter) 
{ 
    int sum = 0; 
    for (int i = 0; i < letter.Length; i++) 
    { 
     char c = letter[i]; // declare it in loop - you overwrite it here anyway 
     sum += char.ToUpper(c) - 64; 
    } 
    return sum; 
} 
+0

고마워요 : P – id94

0

그것은 그것 때문에 배출이

return char.ToUpper(c) - 64; 

의있어 메서드를 호출하고 첫 번째 값을 반환하고 결과를 변수에 저장하고 결과를 다음과 같이 반환합니다.

private int letterNumber(string letter) 
{ 
    int sum = 0; 
    char c = letter[0]; 
    for (int i = 0; i < letter.Length; i++) 
    { 
     c = (char)letter[i]; 
     sum += char.ToUpper(c) - 64; 

    } 

    return sum; 
} 

또한 A = 1 + D = 4 + E = 4, => 9 :