조건문 -if문
public class IfElseTest {
public static void main(String[] args) {
int age = 6;
if (age >= 8) {
System.out.println("학교에 다닙니다.");
}
else {
System.out.println("학교에 다니지 않습니다.");
}
System.out.println("노는 게 젤 좋아.");
}
}
// int = 6
학교에 다니지 않습니다.
노는 게 젤 좋아.
// int = 8
학교에 다닙니다.
노는 게 젤 좋아.
조건이 여러 개일 때의 if문
public class IfElseIfElseTest {
public static void main(String[] args) {
int age = 12;
int charge;
if(age < 8) {
charge = 1000;
System.out.println("미취학 아동입니다.");
}
else if(age < 14) {
charge = 2500;
System.out.println("초등학생입니다.");
}
else if(age < 20) {
charge = 2500;
System.out.println("중, 고등학생입니다.");
}
else {
charge = 3000;
System.out.println("일반인입니다.");
}
System.out.println("입장료는" + charge + "원입니다.");
}
}
// 결과 값
초등학생입니다.
입장료는2500원입니다.
조건이 여러 개일 때 간단히 표현되는 swich-case문
if -else if -else 문을 사용할 때 복잡하고 번거로운 부분을 가독성 있게 구현 비교 조건이 특정 값이나 문자열인 경우 사용 break 문으로 각 조건이 만족되면 switch 블럭을 빠져나오도록 함 자바 14부터 break 없이 더 간결하게 표현 됨 |
public class SwitchCaseTest {
public static void main(String[] args) {
int month = 10;
int day;
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
break;
case 4: case 6: case 9: case 11:
day = 30;
break;
case 2:
day = 28;
break;
default:
day = 0;
System.out.println("존재하지 않는 달입니다.");
}
System.out.println(month + "월은 " + day + "일입니다.");
}
}
// 결과 값
10월은 31일입니다.
문자열 지원되는 switch -case문
public class SwitchCaseTest2 {
public static void main(String[] args) {
String medal = "Gold";
switch(medal) {
case "Gold":
System.out.println("금메달입니다.");
break;
case "Silver":
System.out.println("은메달입니다.");
break;
case "Bronze":
System.out.println("동메달입니다.");
break;
default:
System.out.println("메달이 없습니다.");
break;
}
}
}
// 결과 값
금메달입니다.
Java 14부터 지원되는 Switch Expression
간단하게 쉼표(,)로 구분 식으로 표현하여 반환 값을 받을 수 있다. return 값이 없는 경우 오류 생긴다. yield 키워드 사용한다. |
public class SwitchCaseUpTest {
public static void main(String[] args) {
int month = 3;
int day = switch (month) {
case 1, 3, 5, 7, 8, 10,12 -> {
System.out.println("한 달은 31일입니다.");
yield 31;
}
case 4,6,9,11 -> {
System.out.println("한 달은 30일입니다.");
yield 30;
}
case 2 ->{
System.out.println("한 달은 28일입니다.");
yield 28;
}
default->{
System.out.println("존재하지 않는 달 입니다.");
yield 0;
}
};
System.out.println(month + "월은 " + day + "일입니다.");
}
}
// 결과 값
한 달은 31일입니다.
3월은 31일입니다.
이건.. 딱히 필요 없을 듯
if 문만 잘 쓰자
반복문 -while 문
조건은 주로 반복 횟수나 값의 비교 결과에 따라 true, false 판단 됨
ex) 달리는 자동차, 일정 횟수만큼 돌아가는 나사 못, 특정 온도까지 가동되는 에어컨
while문 예제
1부터 10까지 더하는 식 구현
public class WhileTest {
public static void main(String[] args) {
int num = 1;
int sum = 0;
while(num <= 10) {
sum += num;
num++;
}
System.out.println(sum);
System.out.println(num);
}
}
// 결과 값
55
11 // 11이 되면 num을 빠져 나옴
반복문 -do -while문
조건과 상관 없이 한 번은 수행문 수행
while문은 조건을 먼저 체크하고 반복 수행이 된다면, do-while은 조건과 상관 없이 수행을 한 번 하고 나서 조건을 체크한다.
조건이 맞지 않으면 (true가 아니면) 더 이상 수행하지 않는다.
import java.util.Scanner;
public class DowhileTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Scanner: 정수, 실수, 문자열 읽어오는 클래스
// System.in: 입력한 값을 바이트 단위로 읽는 것
int input;
int sum = 0;
do {
input = scanner.nextInt();
// nextInt: int 입력받는 메소드
sum += input;
}while(input != 0);
System.out.println(sum);
}
}
// 결과 값
1
2
3
4
0 // 0이 입력되면 멈춤
10
반복문 - for문
1부터 10까지 더한 결과 출력
증감식
// for문
public class ForTest {
public static void main(String[] args) {
int count =1;
int sum = 0;
for( int i = 0 ; i<10; i++, count++) { //10번
sum += count;
//count++;
}
System.out.println(sum);
}
}
// while문
public class WhileTest {
public static void main(String[] args) {
int num = 1;
int total = 0;
while( num <= 10) {
total += num;
num++;
}
System.out.println(total);
}
}
// 결과 값
55
반복문이 여러 번 포개진 중첩 반복문
반복문 내부에 또 다른 반복문이 있음
구구단을 for와 while로 구현하자.
// for문
public class NestedLoopTest {
public static void main(String[] args) {
int dan = 2;
int count = 1;
for(dan = 2; dan <= 9; dan++) {
for(count = 1; count <=9; count++) {
System.out.println( dan + "X" + count + "=" + dan * count);
}
System.out.println(); // 단마다 띄어쓰기
}
}
}
public class NestedLoopTest {
public static void main(String[] args) {
int dan = 2;
while( dan <= 9 ) {
int count = 1;
while (count <= 9) {
System.out.println( dan + "X" + count + "=" + dan * count);
count++;
}
dan++;
System.out.println();
}
}
}
// 결과 값
2X1=2
2X2=4
2X3=6
2X4=8
2X5=10
2X6=12
2X7=14
2X8=16
2X9=18
.
.
9X1=9
9X2=18
9X3=27
9X4=36
9X5=45
9X6=54
9X7=63
9X8=72
9X9=81
for문이 더 쓰기 쉬운 듯
중간에 멈추는 break문, 무시하고 계속 진행하는 continue문
break문 예제
1부터 숫자를 더해 100이 넘는 순간의 그 숫자와 합을 출력하자.
public class BreakTest {
public static void main(String[] args) {
int sum = 0;
int num;
for(num = 1; sum <= 100; num++) {
sum += num;
if(sum >= 100) break;
}
System.out.println(sum);
System.out.println(num);
}
}
// 결과 값
105
14
continue문 예제
1부터 100까지의 숫자 중 3의 배수 출력하자.
public class ContinueTest {
public static void main(String[] args) {
int num;
for(num=1; num<=100; num++) {
if((num%3) != 0) continue; // 3의 배수가 아닌 것들 다 무시
System.out.println(num);
}
}
}
// 결과 값
3
6
9
.
.
93
96
99
'Java > 패스트캠퍼스' 카테고리의 다른 글
싱글톤 패턴 (0) | 2022.05.30 |
---|---|
static 변수, static 메소드 (0) | 2022.05.30 |
패스트캠퍼스 자바 알고리즘 문제 (0) | 2022.05.17 |
패스트캠퍼스 객체 지향 핵심 (0) | 2022.04.09 |
패스트캠퍼스 객체지향 프로그래밍 (0) | 2022.03.18 |