트라이 캐치 처음 사용해보는데
내가 원하는건 나이라는 정수를 입력하는 차례에 정수아닌 다른걸 입력하면 catch 구문이 한번 실행되도록 하는건데
구동시켜 보니까 저게 무한반복으로 나오는데
어떻게 하면 한번만 나오게 할 수 있을가?
트라이 캐치 처음 사용해보는데
내가 원하는건 나이라는 정수를 입력하는 차례에 정수아닌 다른걸 입력하면 catch 구문이 한번 실행되도록 하는건데
구동시켜 보니까 저게 무한반복으로 나오는데
어떻게 하면 한번만 나오게 할 수 있을가?
한번 출력되고 컴퓨터 꺼
while(true) <--- 문제가 있다고 생각 안하냐?
1. 나이를 입력하세요가 저렇게 무한반복 되는게 이해가 안되는데 다시 하번 곰곰히 생각해볼게
어떻게든 반복문을 빠져 나올 것이 있어야 할꺼 아니냐 예) while(a == true) 캐치 밑에 a == false 로 하던지
게이야 재능 없어 보이니까 걍 접고 딸배나 하자
얼마버노?
존나 빨리 달리면 생각보다 좀 범
시발 try catch 쓰지마셈 코드 스멜 주범임
뭘 써야 잘 썼다고 소문이나노?
catch me if you can 쓰셈
야 에러부분에서 캐치로빠지니까 브레이크 부분까지못가고 케치에서 컨티뉴하니까 와일문이계속돌잖아 캐치까지하고 와일문끝내고싶으면 캐치에 컨티뉴대신 브레이크넣어
오입력 시 다시 '나이를 입력하세요' 부분으로 돌아가서 입력을 유도하고 싶어서 저렇게 함. break 넣으면 밑에 있는 와일구문으로 넘어는 가는데 밑에 오류 또 뜨더라
제대로입력하면 다입력하고 끝나고 오입럭해서 캐치로빠지만 첨부터다시실행되게하고픈거?
ㅇㅇ 오입력해서 캐치로 빠지면 다시 와일문 첨부터 실행되게 하고싶음. 근데 그게 저렇게 무한반복 뜨길래 왜인지 대가리 싸메고 연구 중임.
무한반복이 먼소리야? 오입력햇을때 무한반복이면 니가 원하는대로 된거아님?? 글고 컨티뉴안써도돼 와일문계속돌자나
ㄴㄴ 내가 원하는건 한번만 뜨는거임. 1. 나이 입력하세요 라고 드꼬 그 밑에 sc.nextInt입력 뜨잖아. 딱 거기까지 원함. 내가 입력을 하고 다음단계로 넘어가길 바라는데 이놈이 계속 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 나이를 입력하세요 잘못된 입력 입니다 이딴식으로 무한반복으로 나타나서
https://hashcode.co.kr/questions/6377/while-%EB%82%B4%EB%B6%80%EC%97%90-try-catch%EB%A5%BC-%EB%84%A3%EC%9D%80-%EC%83%81%ED%83%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4
너랑
비슷한 문제 같은데 확인해봐라
원인은 대충 내가보기엔 Scanner에 잘못 입력된 값이 계속 남아 있는 거다
보니깐 아래 무한 반복문이 또 있네 애초에 잘못 만들었어!!
정확히 문제가 뭐임. 1번만 입력했는데 에러가 무현반복 한다는거냐
에러 무현반복이라고 해야하나? continue 해서 와일문 돌아와서 다시 첫 구절인 ____ '1 나이를 입력하세요' -> i=sc.nextInt(); ___ 이게 한번만 뜨겠지 라고 생각했는데 저게 무현반복 해서 그게 문제임. 트라이캐치문 다 치우고 순정으로 그냥 돌리면 한번만 뜨고 그럼 이제 입력할거 입력하면 다음순서로 차근차근 넘어가는데 왜 캐치문에 컨티뉴 넣고 처음으로 돌아가면 저게 무현반복 하는거지?
그냥 continue하기 전에 sc.nextLine(); 이거 한번 호출해
고맙다 한방에 해결되었다