‘일’, ‘월’, ‘화’, ‘수’, ‘목’, ‘금’, ‘토’ 로 초기화된 문자 배열 day를 선언하고, 사용자로부터 정수를 입력받아 7(배열 day의 크기)로 나눈 나머지를 인덱스로 하여 배열 day에 저장된 문자를 출력하라. 음수가 입력되면 프로그램을 종료하라. 아래 실행결과와 같이 예외 처리하라.
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("정수를 입력하세요");
char day[] = {'일', '월', '화', '수', '목', '금', '토'};
int n = 0;
try
{
n=scanner.nextInt();
for(int i=0; i<=6; i++)
{
if(n%7==day[i])
{
System.out.println(day[i]);
}
}
}
catch(InputMismatchException e) {
System.out.print("정수가 아닙니다. 다시 입력해주세요");
}
finally {
scanner.close();
}
}
이렇게 코딩했는데 안돌아감...
머가 틀렸는지 말해주세요. 저 컴린이기 때문에 심한말은 삼가주세요ㅠㅠ
if문쪽이 틀린거 같은데
스스로 깨닫게 하기 위한 몇가지 조언.1) if(n%7==day[i]) 의 의도를 설명하시오. 2) n%7 는 무슨 값을 나타내는지 설명하시오. (type 과 value) 3) day[i]는 무슨 값을 나타내는지 설명하시오. (type 과 value) 추가문제. 4) for(int i=0; i<=6; i++) 의 의미를 설명하시오. 5) 반복문이 필요한지, 필요없다면 어떻게 고치면 될지 설명하시오. 이거 한번 검토해 보고 그래도 모르겠으면 다시 댓글.
1. 입력받은 정수를 7로 나눈 나머지 값에 따라 배열에 있는 값들이 출력 되기를 원해서
case 문으로 하면 엄청 길고 실용적이지 못한거같아서 for문으로 해결하려고 하는건데.... 진짜 몇번을 봐도 왜 값이 안나오는지 모르겠어요..........
어허, 이친구야? 좌항의 n%7 하면 int 형 {0,1,2,...6} 이 나올건데, 우항은 {'일', '월', ...'토'} 인데 이걸 비교해서 무슨 의미가 있다고 생각하는 거니?
해결완료 ㄳ