JAVA_03_제어문_조건문

송지윤·2024년 2월 5일

Java

목록 보기
5/22
post-thumbnail

Java 언어 특징 복습

  1. 객체 지향 언어 프로그래밍
  2. 사용하기 쉬운 언어
  3. 자동 메모리 관리(Garbage Collection)
  4. 이식성이 높다 -> 운영체제(OS) 에 관계없이 동일 코드로 동작 (JVM)

사람이 작성 -> 컴파일러 -> byte code -> JVM -> 인터프리터 방식으로 한줄씩 해석

변수 : 메모리에 값을 기록하기 위한 공간

변수의 선언 : 메모리 공간에 데이터를 저장할 수 있는 공간을 할당하는 것

bit 0 1 데이터 최소 저장 단위
byte -> 데이터 처리, 문자 최소 단위 : 8bit

Java 자료형

boolean(논리형) : 1byte
int(정수형 기본형) : 4byte
short(정수형) : 2byte
long(정수형) : 8byte
double(실수형) : 8byte
float(실수형) : 4byte
char(문자형) : 2byte
byte(정수형) : 1byte

String(참조형:문자열)

제어문

조건문

프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 조건에 따라 다른 문장이 수행되도록 함

if문

조건식이 true 일 때만 내부 코드 수행
[작성법]
if (조건식) {조건식이 true 일 때 수행할 코드 작성}

연습문제

입력 받은 정수가 양수인지 검사
양수라면 "양수입니다", 아니면 "양수가 아닙니다" 출력

기능제공용 class

import java.util.Scanner;

// 기능 제공용 클래스
public class ConditionExample {

	// field 전역변수처럼 쓸 수 있음
	Scanner sc = new Scanner(System.in);

	public void ex1() {

		System.out.print("정수 입력 : ");
		int num = sc.nextInt();
		if (num > 0) {
			System.out.println("양수입니다.");
		}
		if(num <= 0) {
			System.out.println("양수가 아닙니다.");
		}
	}

실행용 class

// 실행용 클래스
public class ConditionRun {
	public static void main(String[] args) {
		// 설계도 가져와야함
		ConditionExample condition = new ConditionExample();
		
		condition.ex1();
	}
}

if-else문

if - else문
조건식 결과가 true 면 if문, false면 else 구문이 수행됨

[작성법]
if(조건식){조건식이 true일 때 수행될 코드} else {조건식이 false일 때 수행될 코드}

연습문제

홀짝 검사
입력받은 정수값이 홀수이면 "홀수입니다." 출력
0이면 "0입니다."
짝수이면 "짝수입니다." 출력
else if 사용 X, 중첩 if문 사용

기능 제공용 클래스

public void ex2() {
	System.out.print("숫자 입력 : ");
	int num = sc.nextInt();
		
	if (num % 2 == 1) {
		System.out.println("홀수입니다.");
	} else {
		if(num == 0) {
			System.out.println("0 입니다.");
		} else {
			System.out.println("짝수입니다.");
		}
	}
}

if - else if - else

if(조건식) {
true일 때 수행
} else if(조건식) {
true일 때 수행} else {
앞에 조건 다 충족 못했을 때 수행
}

연습문제

양수, 음수, 0 판별

public void ex3() {

	System.out.print("정수 입력 : ");
	int num = sc.nextInt();
		
	if(num > 0) {
		System.out.println("양수 입니다.");
	} else if (num < 0) {
    // 바로 위에 있는 if문이 만족되지 않은 경우 수행
		System.out.println("음수 입니다.");
	} else {
		System.out.println("0 입니다.");
	}
}

if 중첩문

연습문제

달(month)을 입력받아 해당 달에 맞는 계절 출력
단, 겨울일 때 온도가 -15도 이하라면 "한파 경보", -12도 이하 "한파 주의보"
여름일 때 온도가 35도 이상 "폭염 경보", 33도 이상 "폭염 주의보"
1~12 사이가 아닐 땐 "해당하는 계절이 없습니다." 출력
1,2,12 겨울
3~5 봄
6~8 여름
9~11 가을

온도는 변수 지정 or 입력받기

겨울 한파주의보
여름 폭염경보

가을

나의 풀이
public void ex4() {
		
	System.out.print("달 입력 : ");
	int month = sc.nextInt();
	System.out.print("온도 입력 : ");
	int temperature = sc.nextInt();
		
	if (month >= 3 && month <= 5) { // 봄일 때
		System.out.println("봄");
	} else if (month >= 6 && month <= 8) { // 여름일 때
		System.out.print("여름");
		if (temperature >= 35) {
			System.out.println(": 폭염 경보");
		} else if (temperature >= 33) {
			System.out.println(": 폭염 주의보");
		}
	} else if (month >= 9 && month <= 11) {
		System.out.println("가을");
	} else if (month == 12 || month == 1 || month == 2) {
		System.out.print("겨울");
		if (temperature <= -15) {
			System.out.println(": 한파 경보");
		} else if (temperature <= -12) {
			System.out.println(": 한파 주의보");
		}
	} else {System.out.println("해당하는 계절이 없습니다.");}
}

이렇게 입력하면 계절을 넣었을 때 온도를 입력하는 게 아니라 어떤 계절이든 온도를 입력해야 결과값이 나옴

다시 풀기
public void ex4_1() {
	System.out.print("달 입력 : ");
	int month = sc.nextInt();
		
	String season;
    // 아래 조건문 수행 결과를 저장할 변수 선언
		
	if(month == 1 || month == 2 || month == 12) {
		season = "겨울";
			
		System.out.print("온도 입력 : ");
		int temperature = sc.nextInt();
			
		if (temperature <= -15) {
			season += " 한파 경보";
			// 겨울 + 한파 경보
		} else if (temperature <= -12) {
			season += " 한파 주의보";
			// 겨울 + 한파 주의보
		}
			
	} else if (month >= 3 && month <= 5) {
		season = "봄";
	} else if (month >= 6 && month <= 8) {
		season = "여름";
			
		System.out.print("온도 입력 : ");
		int temperature = sc.nextInt();
			
		if (temperature >= 35) {
			season += " 폭염 경보";
			// 여름 + 폭염 경보
		} else if (temperature >= 33) {
			season += " 폭염 주의보";
			// 여름 + 폭염 주의보
		}
	} else if (month >= 9 && month <= 11) {
		season = "가을";
	} else {
		season = "해당하는 계절이 없습니다.";
	}
		
	System.out.println(season);
}

if문 연습문제

연습문제5

나이를 입력 받아 13세 이하면 "어린이입니다"
13세 초과 19세 이하면 "청소년입니다"
19세 초과 "성인입니다" 출력

나의 풀이
public void ex5() {
	System.out.print("나이 입력 : ");
	int age = sc.nextInt();
		
	if (age <= 13) {
		System.out.println("어린이입니다.");
	} else if (age > 13 && age <= 19) {
		System.out.println("청소년입니다.");
	} else if (age > 19) {
		System.out.println("성인입니다.");
	}
}

연습문제6

점수(100점 만점)를 입력 받아
90점 이상 : A
80점 이상 90점 미만 : B
70점 이상 80점 미만 : C
60점 이상 70점 미만 : D
60점 미만 : F
0점 미만, 100점 초과 : "잘못 입력하셨습니다."

나의 풀이
public void ex6() {
	System.out.print("점수 입력 : ");
	int score = sc.nextInt();
		
	if (score < 0 || score > 100) {
		System.out.println("잘못 입력하셨습니다.");
	} else if (score >= 90) {
		System.out.println("A");
	} else if (score >= 80 && score < 90) {
		System.out.println("B");
	} else if (score >= 70 && score < 80) {
		System.out.println("c");
	} else if (score >= 60 && score < 70) {
		System.out.println("D");
	} else {
		System.out.println("F");
	}
}

연습문제7

놀이기구 탑승 제한 검사
나이가 12세 이상, 키 140.0cm 이상일 경우에만 "탑승가능"
나이가 12세 미만인 경우 : "적정 연령이 아닙니다."
키가 140.0cm 미만 : "적정 키가 아닙니다."
나이를 0세 미만, 100세 초과시 : "잘못 입력하셨습니다."

나의 풀이
public void ex7() {
	System.out.print("나이 입력 : ");
	int age = sc.nextInt();
	System.out.print("키 입력 : ");
	double height = sc.nextDouble();
		
	if (age < 0 || age > 100) {
		System.out.println("잘못 입력하셨습니다.");
	} else if (age >= 12 && height >= 140) {
		System.out.println("탑승 가능");
	} else if (age < 12) {
		System.out.println("적정 연령이 아닙니다.");
	} else if (height < 140.0) {
		System.out.println("적정 키가 아닙니다.");
	}
}

연습문제8

놀이기구 탑승 제한 검사 프로그램
조건
나이 : 12세 이상
키 : 140.0cm 이상
나이를 0~100세 사이로 입력하지 않은 경우 : "나이를 잘못 입력 하셨습니다."
키를 0~250.0cm 사이로 입력하지 않은 경우 : "키를 잘못 입력 하셨습니다."
-> 입력이 되자 마자 검사를 진행하여 잘못된 경우 프로그램 종료
나이 O , 키 X : "나이는 적절하나, 키가 적절치 않음";
나이 X , 키 O : "키는 적절하나, 나이는 적절치 않음";
나이 X , 키 X : "나이와 키 모두 적절치 않음";
나이 O , 키 O : "탑승 가능"

나의 풀이
public void ex8_1() {
	System.out.print("나이 입력 : ");
	int age = sc.nextInt();
		
	String result;
		
	if (age < 0 || age > 100) {
		result = "나이를 잘못 입력했어요";
	} else {
		System.out.print("키 입력 : ");
		double height = sc.nextDouble();
			
		if(height < 0 || height > 250) {
			result = "키를 잘못 입력했어요";
		} else {
			if(age < 12 && height >= 140.0) {
				result = "키는 적절하나, 나이가 적절치 않음";
			} else if (age >= 12 && height < 140.0) {
				result = "나이는 적절하나, 키가 적절치 않음";
			} else if (age < 12 && height < 140.0) {
				result = "나이와 키 모두 적절치 않음";
			} else {
				result = "탑승 가능";
			}
		}
	}
	System.out.println(result);
}

switch문

0개의 댓글