럿고의 개발 노트
[프로그래머스] 자바 입문 > Part3. 제어문 본문
[프로그래머스] 자바 입문
Part3. 제어문
1. if문
if 조건문
-
조건식의 연산 결과에 따라 블록 내부 문장 실행 여부 결정
-
결과가 true일 경우에만 실행문이 실행
-
if문의 { }(블럭)을 생략 가능. 단, 실행문은 단 한줄만 포함
if(조건식) {
실행문;
실행문;
}
if-else 문
- 조건식이 true일 경우 if블록 실행문이 실행되고, false일 경우 else블록의 실행문이 실행
if(조건문) {
실행문;
실행문;
} else {
실행문;
}
if / else if / else 문
-
처음 if문 조건식의 조건문이 true일 경우 처음 if문 블록이 실행되고, false일 경우 다음 조건식의 결과에 따라 실행
-
else if문의 수는 제한이 없지만, 많은 else if문은 실행 속도를 느리게 함
-
마지막 else 블록은 생략 가능
if(조건문) {
실행문;
실행문;
} else if(조건문) {
실행문;
} else {
실행문;
}
예제
public class IfExam {
public static void main(String[] args) {
int x = 50; // 변수선언
int y = 60; // 변수선언
if(x < y) { // 조건부여, 조건이 맞을때만 실행
System.out.println("x는 y보다 작습니다."); // 출력 O
}
if(x > y) { // 조건부여, 조건이 맞을때만 실행
System.out.println("x는 y보다 큽니다."); // 출력 X
}
if(x == y) // 블럭을 안줄수도 있지만, 실행문이 한줄일때만 가능
System.out.println("x는 y와 같습니다."); // 출력 X
System.out.println("==================================");
if(x == y) {
System.out.println("x는 y와 같습니다.");
}else { // 위의 조건이 맞지 않는다면 여기 실행문이 실행
System.out.println("x와 y는 다릅니다.");
}
System.out.println("==============================");
if(x == y) {
System.out.println("x는 y와 같습니다.");
}else if(x < y) { // 조건을 여러개 줄때 사용
System.out.println("x는 y보다 작습니다.");
}else {
System.out.println("x는 y와 다릅니다.");
}
}
}
2. 논리연산자
논리연산자
-
논리연산자는 논리곱(&&, &), 논리합(||, |), 베타적 논리합(^), 논리부정(!)연산을 수행
-
논리 연산자의 피연산자는 boolean만 가능하며 결과값도 boolean
-
논리곱(&&, &) : 피연산자가 모두 true일 경우에만 연산 결과가 true
-
논리합(||, |) : 피연산자 중 하나만 true이면 연산 결과는 true
-
베타적 논리합(^) : 피연산자가 서로 다른 값일 경우에만 true
-
논리 부정(!) : 피연산자의 논리값을 변경
- true -> false
- false -> true
public class OperatorExam5 {
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
boolean b3 = true;
System.out.println(b1 && b2); // true AND false => false
System.out.println(b1 && b3); // true AND true => true
System.out.println(b1 || b2); // true OR false => true
System.out.println(b1 || b3); // true OR true = true
System.out.println(b2 || b2); // false OR false = false
int score = 68;
if(score <= 100 && score >= 70) { // true AND false => false
System.out.println("성공"); // 실행 X
}else { // 위의 조건식이 false이기 때문에
System.out.println("실패"); //실행 O
}
System.out.println(b1 ^ b3); // true XOR true => false
System.out.println(b1 ^ b2); // true XOR false => true
System.out.println(!b1); // NOT true => false
}
}
3. 삼항연산자
삼항연산자
-
조건식 ? 피연산자1(true) : 피연산자2(false)
-
피연산자에는 주로 값이 오지만, 경우에 따라 연산식이 올 수도 있음
-
if문으로 변경 가능
public class OperatorExam6 {
public static void main(String[] args) {
int b1 = (5 > 4) ? 50 : 40; // 5 > 4 조건식이 true면 50 / false면 40
System.out.println(b1); // 50
b1 = (5 < 4) ? 50 : 40; // 5 > 4 조건식이 true면 50 / false면 40
System.out.println(b1); // 50
int b2 = 0;
if(5 < 4) { // 위의 삼항연산자와 같은 if문
b2 = 50;
}else{
b2 = 40;
}
System.out.println(b2); // 40
}
}
4. switch문
switch문
- switch문은 어떤 변수의 값에 따라서 문장을 실행할 수 있도록 하는 제어문
switch(변수) {
case 값1 :
실행문;
break;
case 값2 :
실행문;
break;
default :
실행문;
}
-
break문이 없다면 case를 찾았을때, switch문을 빠져나가지 않고 아래에 있는 case의 실행문을 연속해서 실행
-
JDK7이전에는 switch문 괄호안에 정수타입만 가능했지만, 그 이후 버전에서는 문자열 타입도 가능
public class SwitchExam {
public static void main(String[] args) {
// switch, case, default, break
int value = 1;
// 이 switch문은 break가 없기때문에, case를 만나면 그 뒤의 실행문을 다 실행함
switch (value) {
case 1:
System.out.println("1");
case 2:
System.out.println("2");
case 3:
System.out.println("3");
default:
System.out.println("그 외 다른 숫자");
}
// 그래서 나오게 된게 break문으로, break를 사용하면 case를 만나 case의 맞는 실행문을 한 뒤 switch문을 빠져나감
switch (value) {
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
case 3:
System.out.println("3");
break;
default:
System.out.println("그 외 다른 숫자");
}
// JDK1.7이후에는 문자열도 가능
String str = "A";
switch (str) {
case "A":
System.out.println("A");
break;
case "B":
System.out.println("B");
}
}
}
5. while문
while문
-
실행문을 반복적으로 실행하는 반복문
-
조건문의 실행결과가 true일 동안 반복해서 실행
while(조건문) {
실행문;
}
public class WhileExam {
public static void main(String[] args) {
int i = 0;
while(i < 10) { // 저 조건이 만족할때까지 계속 반복
//무한루프를 조심해야한다!
System.out.println(i);
i++; // 증감연산자, i = i + 1;
}
int total = 0;
i = 1;
while(i <= 100) { // 1 ~ 100까지의 합을 구하는 것
total += i;
i++;
}
System.out.println(total);
while(true) { // 일부러 무한루프를 돌리는 방법
System.out.println("hello");
}
// 무한루프를 만든 후, if문 같은 걸로 break를 사용해서 빠져 나오는 방법도 있음
}
}
6. do while문
do while문
-
while문의 경우 조건이 만족하지 않는다면, 한번도 반복하지 않을 수 있음.
-
하지만 do while문의 경우 무조건 한번은 실행
-
입력값을 받을때 많이 사용
do {
실행문;
} while(조건문);
import java.util.Scanner;
public class DoWhileExam {
public static void main(String[] args) {
// do while은 무조건 한번은 실행하는 방법(조건이 맞지 않아도)
int value = 0;
Scanner scan = new Scanner(System.in); // 입력을 받는 방법(키보드로부터)
do {
//반복할 문장들
value = scan.nextInt(); // 입력받는 값을 value에 넣는 법
System.out.println("입력받은 값 : " + value);
}while(value != 10); // 입력받은 값이 10이 아니면, 계속 입력 받기
System.out.println("반복문 종료!!");
}
}
7. for문
for문
-
변수초기화, 조건식, 증감식이 한줄에 모두 있음
-
실행순서
- 초기화식은 최초 한번만 수행
- 조건식을 수행해 수행결과가 false라면 for문을 빠져나감
- 수행결과가 true라면 실행문을 수행
- 증감식 수행
- 2번부터 4번까지 반복적 수행
for(초기화식; 조건식; 증감식) {
실행문;
}
public class ForExam {
public static void main(String[] args) {
int total = 0;
for(int i = 1; i <= 100; i++) { // 변수; 조건식; 증감식
total += i; // total = total + i;
}
System.out.println(total);
total = 0;
for (int i = 1; i <= 100; i++) {
if(i % 2 != 0) {
continue; // 아래 실행문들을 실행하지 않고 다음 반복문을 실행(즉, i값이 1 증가 후 다시 실행)
}
total += i;
}
System.out.println(total);
total = 0;
for (int i = 1; i <= 100; i++) {
total += i;
if(i == 50) { // i가 50이면 반복문을 아예 빠져나오기
break;
}
}
System.out.println(total);
}
}
※ 출처
'Java Note > [프로그래머스] 자바 입문(동영상 강의)' 카테고리의 다른 글
[프로그래머스] 자바 입문 > Part7. 상속 (0) | 2020.01.27 |
---|---|
[프로그래머스] 자바 입문 > Part5. 클래스와 객체 (0) | 2020.01.23 |
[프로그래머스] 자바 입문 > Part4. 배열 (0) | 2019.12.20 |
[프로그래머스] 자바 입문 > Part2. 변수와 계산 (0) | 2019.12.20 |
[프로그래머스] 자바 입문 > Part1. 자바 시작하기 (0) | 2019.12.19 |