[9] Java - if 조건문 관련 연습문제 (ASCII , switch~case문)

kangsun·2022년 9월 14일
0

Java

목록 보기
9/44

📌 if 조건문 관련 연습문제

✏️ 문제

1. 임의의 문자가 대문자, 소문자, 기타인지 구분해서 출력하시오.

char ch='r';	//임의의 문자 설정
        
		if(ch>='A' && ch<='Z') {	// 아스키문자
			System.out.printf("%c 대문자\n", ch);
		}else if(ch>='a' && ch<='z') {
			System.out.printf("%c 소문자\n", ch);
		}else {
			System.out.printf("%c 기타\n", ch);
		}//if end

🖨 Console
r 소문자


2. 대문자는 소문자로, 소문자는 대문자로 서로 바꿔서 출력하시오. 나머지 기호는 그대로 출력.

[문제 분석]
1. if / else if / else 를 사용한다.

- if () { 대문자는 소문자로 
  } else if () { 소문자는 대문자로
  } else { 나머지는 그대로 }

2. A-Z, a-z && 연산자 사용
char ch='r'; //위와 동일한 임의의 문자
		if(ch>='A' && ch<='Z') {	// 아스키문자
			System.out.printf("%c\n", ch+32);
		}else if(ch>='a' && ch<='z') {
			System.out.printf("%c\n", ch-32);
		}else {
			System.out.printf("%c\n", ch);
		}//if end

🖨 Console
r

[헷갈렸던 부분]

  • ch+32 / ch-32
    - 아스키코드의 대문자와 소문자 10진수는 +32, -32씩 차이가 난다.
    - 아스키코드는 대문자보다 소문자의 값이 더 크다. 대문자<소문자
    - 따라서 대문자에 +32를 해주면 소문자값으로 변하고, 소문자에 -32를 해주면 대문자값으로 변하는 것이다.


switch~case문

3. 평균점수에 따라서 A, B, C, D, F학점을 출력하시오.

int kor=100, eng=100, mat=100;
int aver= (kor+eng+mat)/3;
		
        
		switch(aver/10) {
		case 10:
		case  9: System.out.println("A"); break;
		case  8: System.out.println("B"); break;
		case  7: System.out.println("C"); break;
		case  6: System.out.println("D"); break;
		default: System.out.println("F"); break;
		} //switch end

🖨 Console
A

[기억할 부분]

  • 평균을 값(aver)을 10으로 나누면 case문의 숫자를 더 간소하게 작성할 수 있다.
profile
코딩 공부 💻

0개의 댓글