Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Everything has an expiration date

039 - Java 과제 3 : 입력 받은 문자가 알파벳이면 대소문자 변환하여 출력하고, 아니면 입력 오류 메시지를 출력하는 프로그램 (내 풀이) 본문

[Java]/과제

039 - Java 과제 3 : 입력 받은 문자가 알파벳이면 대소문자 변환하여 출력하고, 아니면 입력 오류 메시지를 출력하는 프로그램 (내 풀이)

Jelly-fish 2023. 8. 30. 17:42

 

/*=========================================
■■■ 실행 흐름의 컨트롤(제어문) ■■■
- if 문
- if ~ else 문 실습
===========================================*/

// 1. 프로그램을 작성할 때 주어진 조건에 따라
//    분기 방향을 정하기 위해 사용하는 제어문에는
//   if문, if~else문, 조건연산자, 복합 if문(if문 중첩), switch문이 있다.


// 2. if문은 if 다음의 조건이 참(true)일 경우
//    특정 문장을 수행하고자 할 때 사용되는 구문이다.

// ○ 과제
//	  사용자로부터 임의의 문자를 하나 입력받아
//	  알파벳 대문자 이면 소문자로, 소문자이면 대문자로
//	  알파벳이 아닌 기타 문자면 입력 오류 처리하는
//	  프로그램을 구현한다.

// 실행 예)
// 한 문자 입력 : A
// >> A → a
// 계속하려면 아무 키나 누르세요...

// 한 문자 입력 : b
// >> b → B
// 계속하려면 아무 키나 누르세요...

// 한 문자 입력 : 3
// >> 입력 오류~!!!
// 계속하려면 아무 키나 누르세요...



package Test039;

import java.io.IOException;

public class Test039
{
	public static void main(String[] args) throws IOException
	{
		// 1. 변수를 선언한다.*******************************************
		int nInputChar;  	//-- 입력된 문자의 정수값(키코드 값)을 저장하기 위한 변수 
		char chInputChar;	//-- 입력된 문자의 문자를 저장하기 위한 변수
		char resultChar;	//-- 알파벳 대소문자 연산을 끝낸 결과값을 저장하기 위한 변수

		// 2. 사용자에게 문자 하나를 char 형태로 입력 받는다.********************
		System.out.print("한 문자 입력 : ");
		nInputChar = System.in.read();
		chInputChar = (char)nInputChar; 
		
		
		// 3. 알파벳이면 대소문자를 변환해주고,
		//	  알파벳이 아니면 오류 메시지를 출력하는 Logic을 적용한다.**************

		/* [Logic]▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤

		'A' = 65 'Z' = 90
		'a' = 97 'z' = 122

		① 알파벳 대문자인가?
			① ▶ true  : 알파벳 소문자로 변환한다.					◎(문자 입력 char의 keyCode + 32)
			① ▶ false : 알파벳 대문자가 아니다.
					   ② 알파벳 소문자인가?
						 ② ▶ true  : 알파벳 대문자로 변환한다.		◎(문자 입력 char의 keyCode - 32)
						 ② ▶ false : 알파벳 입력이 아니다.		  ◎("입력 오류~!!!" 출력하고 프로그램 종료한다.)
		▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤*/

		if ((nInputChar >= (int)'A') && (nInputChar <= (int)'Z'))	//① 알파벳 대문자인가?
		{
			// ① ▶ true  : 알파벳 소문자로 변환한다. →  ◎(문자 입력 char의 keyCode + 32)
			nInputChar += 32;
		}
		else if ((nInputChar >= (int)'a') && (nInputChar <= (int)'z')) //② 알파벳 소문자인가?
		{
			// ② ▶ true  : 알파벳 대문자로 변환한다. → ◎(문자 입력 char의 keyCode - 32)
			nInputChar -= 32;
	
		}
		else // ① ▶ false : 알파벳 대문자가 아니다. → ◎("입력 오류~!!!" 출력하고 프로그램 종료한다.)
		{
			System.out.println("입력 오류~!!!");
			return;
		}

		// 4. 최종 결과 알파벳 문자의 int형 값을 char형으로 변환해 준다.***************

		resultChar = (char)nInputChar;

		// 5. 결과를 출력한다.************************************************

		// 실행 예)
		// 한 문자 입력 : A
		// >> A → a
		// 계속하려면 아무 키나 누르세요...
		System.out.printf(">> %c → %c\n", chInputChar, resultChar);

	}
}


// 실행 결과

/*
한 문자 입력 : A
>> A → a
*/

/*
 한 문자 입력 : a
>> a → A
*/

/*
한 문자 입력 : 랄
입력 오류~!!!
*/