들어가기전에!
리터럴(Literal)이란? 프로그래밍에서 리터럴의 역할과 종류, 그리고 값과의 차이점까지!
리터럴이란?리터럴은 코드에서 고정된 값을 표현하는 방식입니다. 예를 들어 숫자 10, 문자열 "Hello", 논리값 true등은 모두 리터럴입니다. 리터럴은 값이 변하지 않고 그대로 사용되기 때문에 상
devgodmj.tistory.com
1. 제어문이란?
제어문(Control Statement)은 프로그램이 특정 조건을 만족할 때만 어떤 코드를 실행하거나, 특정 코드 블록을 반복해서 실행하도록 만들어 줍니다. 제어문을 사용하면 유연하게 동작하는 프로그램을 만들 수 있죠.
2. 조건문 - 조건에 따라 다르게 실행하기
조건문은 특정 조건이 참인지 거짓인지에 따라 다른 동작을 하게 만드는 문법입니다. 자바에서 가장 많이 사용하는 조건문은 if문과 switch문입니다.
2.1 if문
if문은 조건이 참일 때만 코드가 실행되며, else 또는 else if를 추가하여 다양한 조건을 설정할 수 있습니다.
if (조건) {
// 조건이 참일 때 실행될 코드
} else if (다른 조건) {
// 다른 조건이 참일 때 실행될 코드
} else {
// 모든 조건이 거짓일 때 실행될 코드
}
예제: 점수에 따른 학점 계산
import java.util.Scanner;
public class GradeCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("점수를 입력하세요: ");
int score = scanner.nextInt();
if (score >= 90) {
System.out.println("학점: A");
} else if (score >= 80) {
System.out.println("학점: B");
} else if (score >= 70) {
System.out.println("학점: C");
} else if (score >= 60) {
System.out.println("학점: D");
} else {
System.out.println("학점: F");
}
scanner.close();
}
}
실행 결과 예시
점수를 입력하세요: 85
학점: B
2.2 switch문
switch문은 특정 변수의 값에 따라 여러 가지 경우의 수를 처리할 때 유용합니다.
switch (변수) {
case 값1:
// 값1일 때 실행될 코드
break;
case 값2:
// 값2일 때 실행될 코드
break;
default:
// 모든 조건에 해당하지 않을 때 실행될 코드
break;
}
예제: 요일 출력하기
import java.util.Scanner;
public class DayOfWeek {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("요일 숫자 입력 (1~7): ");
int day = scanner.nextInt();
switch (day) {
case 1:
System.out.println("월요일");
break;
case 2:
System.out.println("화요일");
break;
case 3:
System.out.println("수요일");
break;
case 4:
System.out.println("목요일");
break;
case 5:
System.out.println("금요일");
break;
case 6:
System.out.println("토요일");
break;
case 7:
System.out.println("일요일");
break;
default:
System.out.println("잘못된 숫자입니다.");
break;
}
scanner.close();
}
}
실행 결과 예시
요일 숫자 입력 (1~7): 5
금요일
3. 반복문 - 특정 작업 반복하기
반복문은 특정 조건이 참일 때까지, 또는 반복 횟수가 끝날 때까지 같은 동작을 반복하게 해 줍니다. 자바에서 가장 많이 사용하는 반복문은 for, while, do-while입니다.
3.1 for문
for문은 반복 횟수가 정해져 있을 때 주로 사용합니다.
for (초기화; 조건; 증감) {
// 반복 실행될 코드
}
예제: 1부터 10까지의 합 구하기
public class SumExample {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i; // sum = sum + i
}
System.out.println("1부터 10까지의 합: " + sum);
}
}
실행 결과
1부터 10까지의 합: 55
3.2 while문
while문은 조건이 참인 동안 계속해서 반복하며, 특정 조건을 만족할 때까지 실행되는 구조입니다.
while (조건) {
// 조건이 참일 동안 반복 실행될 코드
}
예제: 숫자 입력받아 합 구하기
import java.util.Scanner;
public class SumWhileExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0;
int number;
while (true) {
System.out.print("숫자 입력 (0 입력 시 종료): ");
number = scanner.nextInt();
if (number == 0) {
break; // 0 입력 시 반복문 종료
}
sum += number;
}
System.out.println("입력한 숫자의 합: " + sum);
scanner.close();
}
}
실행 결과 예시
숫자 입력 (0 입력 시 종료): 5
숫자 입력 (0 입력 시 종료): 10
숫자 입력 (0 입력 시 종료): 0
입력한 숫자의 합: 15
3.3 do-while문
do-while문은 조건을 나중에 검사하기 때문에, 적어도 한 번은 무조건 실행되는 특징이 있습니다.
do {
// 적어도 한 번은 실행될 코드
} while (조건);
예제: 숫자 맞추기 게임
import java.util.Scanner;
public class GuessNumberGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 맞춰야 할 숫자를 1부터 100 사이의 랜덤 숫자로 설정
int targetNumber = (int) (Math.random() * 100) + 1;
int guess;
do {
System.out.print("숫자를 맞춰보세요 (1부터 100 사이): ");
guess = scanner.nextInt();
if (guess > targetNumber) {
System.out.println("더 작은 숫자입니다.");
} else if (guess < targetNumber) {
System.out.println("더 큰 숫자입니다.");
}
} while (guess != targetNumber);
System.out.println("정답입니다!");
scanner.close();
}
}
실행 결과 예시
숫자를 맞춰보세요: 5
더 큰 숫자입니다.
숫자를 맞춰보세요: 9
더 작은 숫자입니다.
숫자를 맞춰보세요: 7
정답입니다!
4. 중첩 반복문과 break, continue 활용하기
4.1 중첩 반복문
중첩 반복문은 반복문 안에 또 다른 반복문이 들어있는 형태로, 2차원 배열 처리나 구구단 등 여러 단계의 반복이 필요한 작업에서 많이 사용됩니다.
예제: 구구단 출력
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(i + " x " + j + " = " + (i * j) + "\t");
}
System.out.println();
}
}
}
실행 결과
1 x 1 = 1 1 x 2 = 2 ... 1 x 9 = 9
2 x 1 = 2 2 x 2 = 4 ... 2 x 9 = 18
...
9 x 1 = 9 9 x 2 = 18 ... 9 x 9 = 81
4.2 break와 continue 활용
- break: 반복문을 즉시 종료하고 반복문 밖으로 나갑니다. 주로 특정 조건을 충족했을 때 반복을 멈추고 싶을 때 사용합니다.
- continue: 현재 반복만 건너뛰고 다음 반복을 실행하도록 합니다. 주로 특정 조건일 때 반복문을 건너뛰고 싶을 때 사용됩니다.
예제: 특정 숫자 건너뛰기와 반복 종료하기
아래 예제는 1부터 10까지의 숫자를 출력하되, 5를 건너뛰고, 8에 도달하면 반복을 멈추는 코드입니다.
public class BreakContinueExample {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
continue; // 5일 때는 건너뛰기
}
if (i == 8) {
break; // 8에 도달하면 반복 종료
}
System.out.println(i);
}
}
}
실행 결과
1
2
3
4
6
7
4.3 중첩 반복문에서 break와 continue 사용
중첩된 반복문에서 break와 continue를 사용하면, 내부 반복문에서만 적용된다는 점을 유의해야 합니다. 외부 반복문까지 멈추고 싶다면 레이블을 사용할 수 있습니다.
- 레이블(Lable): 레이블은 반복문이나 조건문 앞에 붙여서 해당 위치를 식별할 수 있도록 만든 이름입니다. 보통 중첩된 반복문에서 break나 continue 문이 바깥쪽 반복문까지 영향을 미쳐야 할 때 사용합니다.
예제: 레이블을 사용한 반복문 제어
아래 예제는 구구단을 출력하되, 곱셈 결과가 30 이상이 되는 경우 반복을 멈춥니다.
public class LabeledBreakExample {
public static void main(String[] args) {
outerLoop: // 레이블 설정
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
if (i * j >= 30) {
break outerLoop; // 외부 반복문까지 종료
}
System.out.print(i + " x " + j + " = " + (i * j) + "\t");
}
System.out.println();
}
}
}
실행 결과
1 x 1 = 1 1 x 2 = 2 ... 1 x 9 = 9
2 x 1 = 2 2 x 2 = 4 ... 2 x 9 = 18
...
예제: 구구단 출력 프로그램 만들기
public class MultiplicationTable {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) { // 외부 반복문: 단(1~9)
for (int j = 1; j <= 9; j++) { // 내부 반복문: 각 단에서 곱하는 수(1~9)
System.out.print(i + " x " + j + " = " + (i * j) + "\t");
}
System.out.println(); // 각 단이 끝날 때 줄바꿈
}
}
}
코드 설명
- 외부 반복문: for (int i = 1; i <= 9; i++)
- i는 현재 구구단의 단을 나타냅니다. 이 반복문은 1부터 9까지 반복되며, 각 단을 순서대로 출력합니다.
- 내부 반복문: for (int j = 1; j <= 9; j++)
- j는 각 단에서 곱해지는 수를 나타냅니다. 각 i 값에 대해 1부터 9까지 곱하는 결과를 출력합니다.
- System.out.print: 각 단의 곱셈 결과를 한 줄에 출력합니다.
- System.out.println: 한 단의 곱셈이 모두 끝나면 줄을 바꾸어 다음 단을 출력합니다.
1 x 1 = 1 1 x 2 = 2 1 x 3 = 3 1 x 4 = 4 1 x 5 = 5 1 x 6 = 6 1 x 7 = 7 1 x 8 = 8 1 x 9 = 9
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9 3 x 4 = 12 3 x 5 = 15 3 x 6 = 18 3 x 7 = 21 3 x 8 = 24 3 x 9 = 27
...
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81
'IT개발및프로그래밍 > 자바' 카테고리의 다른 글
[자바 기초 #4] 객체지향 프로그래밍(OOP) 기초 - 클래스와 객체 (1) | 2024.11.17 |
---|---|
자바 객체 생성의 핵심: new 키워드 이해하기 (3) | 2024.11.11 |
리터럴(Literal)이란? 프로그래밍에서 리터럴의 역할과 종류, 그리고 값과의 차이점까지! (0) | 2024.11.11 |
[자바 기초 #3] 배열과 문자열 - 데이터 관리의 기본 (0) | 2024.11.11 |
[자바 기초 #1] 자바로 시작하는 프로그래밍 기초 (1) | 2024.11.08 |