티스토리 뷰
제어문이란?
프로그램의 흐름(flow)을 바꾸는 역할을 하는 문장들을 제어문이라고 한다.
제어문에는 조건문과 반복문이 있다.
조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장들을 반복해서 수행한다.
if문
if (조건식) {
//조건식이 참(true) 일 때 수행될 문장들을 적는다.
}
if문은 가장 기본적인 조건문으로 '조건식'과 '괄호{ }'로 이루어져 있다.
if문은 조건식이 참(ture)이면 괄호 { } 안의 문장들을 수행하게 된다.
예시)
public class Ex4_1 {
public static void main(String[] args) {
int score = 80;
if (score > 60) { //조건식이 참(true)이므로 괄호{}안의 문장이 실행된다.
System.out.println("합격입니다.");
}
}
}
위 if문의 조건식의 평가되는 과정은 아래와 같다.
score > 60
→ 80 > 60
→ true // 조건식의 참이므로 괄호{ } 안의 문장이 실행된다.
if - else문 (경우의 수가 두개)
if-else문은 if문에 'else'블럭이 추가된 것이다.
else는 '그 밖의 다른'이라는 뜻으로 조건식의 결과가 참이 아닌 거짓일 때 else 블럭의 문장을 수행한다.
if (조건식) {
// 조건식이 참(true) 일 때 수행될 문장들을 적는다.
} else {
//조건식이 거짓(false) 일 때 수행될 문장들을 적는다.
}
조건식의 결과에 따라 이 두 개의 블럭{ }중 어느 한 블럭{ }의 내용이 수행되고 전체 if문을 벗어나게 된다.
예시)
import java.util.Scanner;
public class Ex4_3 {
public static void main(String[] args) {
System.out.printf("숫자를 하나 입력하세요. >");
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt(); //입력받은 숫자를 input에 저장
if(input == 0 ) {
System.out.println("입력하신 숫자는 0입니다.");
} else { // input != 0
System.out.println("입력하신 숫자는 0이 아닙니다.");
}
}
}
위 if문의 조건식이 거짓이므로 else문이 수행되었다.
if - else if문 (경우의 수가 세 개 이상)
위에서 본 'if-else'문은 두 가지 경우 중 하나가 수행되는 구조인데,
처리해야 할 경우의 수가 셋 이상인 경우에는 어떻게 해야 할까?
그럴 때는 한 문장에 여러 개의 조건식을 쓸 수 있는 'if-else-if'문을 사용하면 된다.
if (조건식1) {
// 조건식1의 연산 결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식2) {
// 조건식2의 연산 결과가 참일 때 수행될 문장들을 적는다.
} else if (조건식3) {
// 조건식3의 연산 결과가 참일 때 수행될 문장들을 적는다.
} else { //마지막은 보통 else블럭으로 끝난다 (생략 가능)
// 위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다.
}
예제)
import java.util.Scanner;
public class Ex4_4 {
public static void main(String[] args) {
int score = 0; //점수를 저장하기 위한 변수
char grade = 'D'; // 학점을 저장하기 위한 변수. (공백으로 초기화 /기본값을 'D'로 두면 else문 생략가능)
System.out.print("점수를 입력하세요. >");
Scanner scanner = new Scanner(System.in);// 점수 입력
score = scanner.nextInt(); // 화면을 통해 입력받은 숫자 score에 저장
if(score >= 90) {
grade = 'A';
} else if(score >= 80) {
grade = 'B';
} else if(score >= 70) {
grade = 'C';
}
// else {
// grade = 'D';
// }
System.out.println("당신의 학점은 " + grade + "입니다." );
}
}
중첩 if문
if문의 블럭 내 또 다른 if문을 포함시키는 것이 가능하다.
이것을 중첩 if문이라고 부르며, 중첩의 횟수에는 거의 제한이 없다.
if (조건식1) {
// 조건식1과 조건식2가 모두 ture일 때 수행될 문장들
if (조건식2) {
// 조건식1과 조건식2가 모두 ture일 때 수행될 문장들
} else {
// 조건식1이 ture, 조건식2가 false일 때 수행될 문장들
}
} else {
// 조건식1이 false일 때 수행될 문장들
}
중첩 if문을 쓸 때 내부의 if문은 외부의 if문 보다 안쪽으로 들여 쓰기를 하여,
두 if문의 범위를 명확히 구분할 수 있도록 작성해야 한다.
예제)
import java.util.Scanner;
public class Ex4_5 {
public static void main(String[] args) {
int score = 0;
char grade = 'C' , opt =' ';
System.out.print("점수를 입력해주세요. >");
Scanner scanner = new Scanner(System.in);
score = scanner.nextInt();//입력 받은 점수를 score에 저장
System.out.printf("당신의 점수는%d 입니다.%n" , score);
if(score >= 90) {
grade = 'A';
if (score >= 98) {
opt = '+';
} else if (score <94) {
opt = '-';
}
}else if(score >=80) {
grade = 'B';
if (score >= 88) {
opt = '+';
} else if (score <84) {
opt = '-';
}
}
System.out.printf("당신의 학점은 %c%c입니다. %n" , grade , opt);
}
}
'개발 공부 > JAVA' 카테고리의 다른 글
[Java] 제어문 - 반복문(for문) (0) | 2021.12.01 |
---|---|
[Java] 제어문 - 조건문(switch문) (0) | 2021.12.01 |
[Java] 연산자 (0) | 2021.11.22 |
[Java] 타입 간의 변환 방법 (0) | 2021.11.16 |
[Java] 기본형과 참조형 (0) | 2021.11.16 |
- Total
- Today
- Yesterday
- 프로그래머스
- 프로글개머스 `
- 객체지향
- string 배열
- 호출스택
- 두 수의 나눗셈
- JAVA 의 정석
- Lv.0
- 기본 생성자
- java의정석 기초
- java의 정석기초
- 메서드 간의 호출과 참조
- 클래스와 객체
- 자바의 정석
- 객체의 구성요소
- return문
- do-while문
- SQL
- 객체 배열
- MySQL
- 2차배열 예제
- 생활코딩
- Java
- 매개변수가 있는 생성자
- JAVA의 정석
- 조건문 if
- 인스턴스 메서드
- 코테
- 객체지향 언어
- 기본형/참조형 매개변수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |