Notice
Recent Posts
Recent Comments
Link
Everything has an expiration date
038 - Java 과제 2 : if문을 사용하여 입력 받은 문자가 알파벳 모음인지, 자음인지, 알파벳이 아닌 다른 문자인지 출력하는 프로그램 (내 풀이) 본문
[Java]/과제
038 - Java 과제 2 : if문을 사용하여 입력 받은 문자가 알파벳 모음인지, 자음인지, 알파벳이 아닌 다른 문자인지 출력하는 프로그램 (내 풀이)
Jelly-fish 2023. 8. 30. 17:41
/*=========================================
■■■ 실행 흐름의 컨트롤(제어문) ■■■
- if 문
- if ~ else 문 실습
===========================================*/
// 1. 프로그램을 작성할 때 주어진 조건에 따라
// 분기 방향을 정하기 위해 사용하는 제어문에는
// if문, if~else문, 조건연산자, 복합 if문(if문 중첩), switch문이 있다.
// 2. if문은 if 다음의 조건이 참(true)일 경우
// 특정 문장을 수행하고자 할 때 사용되는 구문이다.
// ○ 과제
// 사용자로부터 임의의 알파벳 한 문자를 입력받아
// 이를 판별하여 입력받은 알파벳이 모음일 경우만
// 결과를 출력하는 프로그램을 구현한다.
// 단, 대소문자를 모두 적용할 수 있도록 처리한다.
// 또한, 알파벳 이외의 문자가 입력되었을 경우
// 입력 오류에 대한 내용을 사용자에게 안내해 줄 수 있도록 한다.
// 실행 예)
// 임의의 알파벳 한 문자 입력 : A ← 대문자 모음
// >> 모음 OK~!!!
// 계속하려면 아무 키나 누르세요...
// 임의의 알파벳 한 문자 입력 : e ← 소문자 모음
// >> 모음 OK~!!!
// 계속하려면 아무 키나 누르세요...
// 임의의 알파벳 한 문자 입력 : B ← 대문자 자음
// 계속하려면 아무 키나 누르세요...
// 임의의 알파벳 한 문자 입력 : c ← 소문자 자음
// 계속하려면 아무 키나 누르세요...
// 임의의 알파벳 한 문자 입력 : 1 ← 알파벳 아님
// >> 입력 오류~!!!
// 계속하려면 아무 키나 누르세요...
package Test038;
import java.io.IOException;
public class Test038
{
public static void main(String[] args) throws IOException
{
// 1. 변수 선언****************************************************************************
char chInput; // ◆ 사용자가 입력하는 문자 정수형 변수 : chInput 선언
// ◆ 알파벳 모음의 char 값 배열 : alphabetVowelsArray 생성
int[] alphabetVowelsArray = {65, 69, 73, 75, 85, 97, 101, 105, 111, 117};
// ----------------------
// ⓐ
// ------------------
// ⓑ
// ⓐ → ※ 입력값 chInput이 97 101 105 111 117 이면 알파벳 소문자 모음
// ⓑ → ※ 입력값 chInput이 65 69 73 75 85 이면 알파벳 대문자 모음
//
// if문으로 10개의 조건을 작성하면 코드가 너무 길어지므로,
// UniCode 값을 각각 배열 인덱스에 저장하여 처리하자.
boolean bIsTrue = false; // ◆ 알파벳 모음임을 판별하는 boolean 변수 : strIsTrue 선언
String resultStr = ""; // ◆ 결과 값을 저장하는 문자열 변수 : resultStr 선언
// 2. 사용자로부터 문자 하나를 입력 받는다.***************************************************
System.out.print("임의의 알파벳 한 문자 입력 : ");
chInput = (char)System.in.read();
// 3. for문과 array를 사용하여
// 입력값이 알파벳 모음인지, 자음인지, 아니면 다른 입력값인지 판단한다.********************
//【Logic】▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤
//① 입력 받은 값이 알파벳인가?
// ① ▶ true : ② 알파벳 모음인가?
// ② ▶ true : "모음 OK~!!!"를 출력한다.
// ② ▶ false : 아무것도 실행하지 않고, 프로그램 종료한다.
// ① ▶ false : 알파벳이 아니다. "입력 오류~!!!"를 출력한다.
//▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤
// ① 입력 받은 값이 알파벳인가?
// ↓ 입력 문자 chInput = 알파벳 대문자 or ↓ 입력 문자 chInput = 알파벳 소문자
if ((65 <= chInput) && (chInput <= 90) || (97 <= chInput) && (chInput <= 122))
{
//System.out.println("첫 번째 if문 들어왔습니다.");
// ① ▶ true : ② 알파벳 모음인가?
for (int i = 0; i<10 ; i++) // ② ▶ true : 알파벳 모음이다.
{
bIsTrue = (chInput == alphabetVowelsArray[i]); // 알파벳 모음 배열 값과 일치한다.
//System.out.println("[입력 알파벳과 비교 알파벳은 같나요?] : " + bIsTrue + " [비교하는 알파벳 모음] : " + alphabetVowelsArray[i]);
if (bIsTrue == true)
{
// "모음 OK~!!!"를 출력한다.
resultStr = "모음~!!!";
System.out.println(resultStr);
}
}
// for문을 다 돌고 나서도 bIsTrue == false이면 자음이다.
if (bIsTrue == false) // ② ▶ false : 아무것도 실행하지 않고, 프로그램 종료한다.
{
//System.out.println("자음을 입력하셨습니다.");
return;
// * return : 1. 값을 반환한다.
// 2. 메소드를 종료시킨다. → main()메소드 종료 : 프로그램 종료.
}
}
else // ① ▶ false : 알파벳이 아니다. "입력 오류~!!!"를 출력한다.
{
resultStr = "입력 오류~!!!";
System.out.println(resultStr);
}
}
}
// 실행 결과
/*
임의의 알파벳 한 문자 입력 : a
모음~!!!
계속하려면 아무 키나 누르십시오 . . .
*/
/*
임의의 알파벳 한 문자 입력 : I
모음~!!!
계속하려면 아무 키나 누르십시오 . . .
*/
/*
임의의 알파벳 한 문자 입력 : B
계속하려면 아무 키나 누르십시오 . . .
*/
/*
임의의 알파벳 한 문자 입력 : 8
입력 오류~!!!
계속하려면 아무 키나 누르십시오 . . .
*/