2014-09-11 3 views
0

이것은이 사이트의 첫 번째 질문이므로이 작업을 수행하는 방법을 잘 모르겠습니다. 그러나 제 질문은 다음과 같습니다. 이것은 여러 가지 방법으로 작성된 작은 코드 조각입니다. 문자열의 모든 문자 (사용자 입력)의 ASCII 코드를 인쇄해야합니다. 이제 첫 번째 문자를 스캔하는 for-loop를 사용하여 ASCII 코드를 인쇄 한 후 다음 코드를 스캔합니다. 그러나 그 순간에는 첫 번째 문자의 ASCII 코드를 몇 번 인쇄합니다. 분명히 for-loop에 문제가 있지만 분명히 알아 내려고 노력했지만 실제로 찾을 수는 없습니다.forloop이 작동하지 않는 이유는 무엇입니까?

static String zin(String zin) { 
    int length = zin.length(); 
    char letter = zin.charAt(0); 
    int ascii = (int) letter; 
    for (int i = 0; i < zin.length(); i++) { 
    System.out.println((int) ascii); 
    } 
    return zin; 
} 
+1

'char 문자 = zin.charAt (0);'는 루프 전에 한 번만 호출됩니다. 루프의'letter '를 결코 업데이트하지 않으므로 문자열의 길이만큼 여러 번 같은 값을 출력합니다. 루프 내부로 이동하여 각 문자를 변경하십시오. –

+0

루프가'ascii'를 갱신하지 않습니다. 직접 업데이트해야합니다. – manouti

답변

5

이유는 사용자가 ascii을 다시 할당하지 않았기 때문입니다. 이 시도 : 당신이 루프는 for 루프를 사용하여 중독을 반복하지 않는이 있지만

static String zin(String zin) { 
    int i = 0; 
    int length = zin.length(); 

    for (i = 0; i < zin.length(); i++) { 
    int ascii = (int)zin.charAt(i); 
    System.out.println(ascii); 
    } 

    return zin; 
} 
0

코드의 문제입니다. 해당 문자열의 첫 번째 문자 만 가져옵니다. 그것 대신에

static String zin(String zin) { 
     for (int i = 0; i < zin.length(); i++) { 
      System.out.println((int) zin.charAt(i)); 
     } 
     return zin; 
    } 
관련 문제