이 프로그램은 사용자 입력시 대문자가 필요합니다. 입력은 char 변수 c에 저장되고, 그 다음 ascii로 변환 된 다음 대문자인지 확인합니다. 그렇지 않은 경우 프로그램에서 다시 질문해야합니다. 에서 System.out.println 명령 문제 표준시 ("대문자 쓰기 :")은 여러 번 실행되고, 그것은 그 다음과 같습니다"do while"문제
쓰기 대문자 : 쓰기 대문자 : 쓰기 대문자 : 쓰기 대문자 : 대문자 쓰기 :
모든 잘못된 입력 후에 화면에 "대문자 쓰기"를 하나만 갖고 싶습니다. 그리고 ASCII 테이블로 완료해야합니다.
미리 감사드립니다. 조건이 참인 같이 do
블록에 정의 된대로
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int ascii;
char c;
do {
System.out.println("Write capital letter: ");
c = (char) System.in.read();
ascii = (int) c;
} while (ascii < 65 || ascii > 90);
디버깅을 시도 했습니까? 'while' 문이 발생할 때'c'와'ascii'는 어떤 값을 가지게됩니까? –
실제로'ascii = (int) c; '뒤에'System.out.println (ascii)'와 같은 것을 추가하고 어떤 값을 얻었는지 살펴보십시오. 그런 다음 그 코드가있는 문자를 찾으십시오. –
프롬프트가 여러 번 표시되게하는 원인은 그 한 바이트 (문자)를 읽을 때 줄 바꿈을 포함하여 입력 한 해당 줄의 다른 항목을'System.in'에 남겨 둡니다. – Pietu1998