import java.io.*;
class DoUseMenu{
public static void main(String args[]){
try{
char choice;
// do{ ----------주석처리해놓은부분은 ppt에 있던대로 했다가 이상해서 그냥 while문으로 바꾸면서 주석으로 바꿨습니다.
while(true){
System.out.println("객체지향 용어 설명");
System.out.println(" 1. 객체");
System.out.println(" 2. 크래스");
System.out.println(" 3. 메시지");
System.out.println(" 4. 상속");
System.out.print("원하는 번호를 입력하세요 : ");
// System.out.println("1"); ----- 이 라인하고 아래에 주석처리안 println문은 입력명령이 실행되지 않는지 실험해보려고 중간에 추가해봤던 부분인데요 그냥 넘어갈때는 read() 명령이 있는 라인을 한번이나 두번 지나고나서 다음번에 실행되더라구요
choice = (char)System.in.read();
// System.out.println("1");
System.out.println();
try{Thread.sleep(300);}catch(InterruptedException e){} //혹시 엔터키를 여러번눌렀을까봐 사이에 지연을 넣었습니다.
if(choice >= '1' && choice <= '4'){break;}
}
// }while(choice < '1' || choice > '4');
switch(choice){
case '1':
System.out.println("****객체****");
System.out.print("객체는 정보를 관리하기 위한 논리적인 단위이다");
break;
case '2':
System.out.println("****클래스****");
System.out.print("클래스는 객체를 생성하는 형판(template)이다");
break;
case '3':
System.out.println("****메시지****");
System.out.print("메시지는 객체에게 일을 시키는 행위이다");
break;
case '4':
System.out.println("****상속****");
System.out.print("상속은 상위 클래스로부터 모든 속성과 절차를 이어 받는다");
break;
}
}catch(IOException e){}
}
}
오늘 홈페이지에서 다운로드한 29일차 ppt자료에서 37페이지에 나와있는 내용인데요
ppt에는 do while문으로 나와있었는데 그냥 while문으로도 해봤거든요
밑에 써놓은건 제가 실행했던 cmd화면 복사한것인데요
do while로 하나 while로하나 이상한점이 있었는데요
1부터 4까지중에 하나의 숫자를 입력하면 정확히 값이 나오는데
여기서 그 외의 숫자를 입력하면 반복문이 3번 실행되면서 3번째에서 멈춰서 입력대기를 하고요
아무것도 입력하지않고 그냥 엔터를 치면 2번째에서 입력대기가 되더라구요
중간에 Thread.sleep()명령을 쓴건 혹시나 엔터키를 누를때 잘못눌러서 그런가싶어서
한번 반복문이 실행될때마다 약간의 텀을 두고 실행되게 하려고 해봤는데요
그래도 똑같이 그냥 반복되더라구요..
아무리봐도 잘못된건 없는것같은데..이상하게 잘 안되네요;;
혹시나 입력받는라인이 실행되지 않는것인가 싶어서 System.in.read()문 윗줄과 아랫줄에
System.out.println()명령을 사용해서 숫자 하나씩을 출력시켜봤는데
실행이 안되고 넘어가는건 아니더라구요...왜그런지 도무지 모르겠어요 ㅜㅜ
시간좀 많이 걸릴거같아서 직접 질문은 못드리고 글로 올립니다
C:\java\090929>java DoUseMenu ------cmd창에 실행했던화면 복사한내용입니다
객체지향 용어 설명
1. 객체
2. 크래스
3. 메시지
4. 상속
원하는 번호를 입력하세요 :
객체지향 용어 설명
1. 객체
2. 크래스
3. 메시지
4. 상속
원하는 번호를 입력하세요 :
객체지향 용어 설명
1. 객체
2. 크래스
3. 메시지
4. 상속
원하는 번호를 입력하세요 : 8
객체지향 용어 설명
1. 객체
2. 크래스
3. 메시지
4. 상속
원하는 번호를 입력하세요 :
객체지향 용어 설명
1. 객체
2. 크래스
3. 메시지
4. 상속
원하는 번호를 입력하세요 :
객체지향 용어 설명
1. 객체
2. 크래스
3. 메시지
4. 상속
원하는 번호를 입력하세요 :3
****메시지****
메시지는 객체에게 일을 시키는 행위이다
C:\java\090929>