사람이 작성 -> 컴파일러 -> 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(참조형:문자열)
프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 조건에 따라 다른 문장이 수행되도록 함
조건식이 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문
조건식 결과가 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(조건식) {
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 입니다.");
}
}
달(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);
}
나이를 입력 받아 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("성인입니다.");
}
}
점수(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");
}
}
놀이기구 탑승 제한 검사
나이가 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("적정 키가 아닙니다.");
}
}
놀이기구 탑승 제한 검사 프로그램
조건
나이 : 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);
}