Spring & Java
[4일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기 본문
4일차 스터디 내용
● JAVA 1 - 8 반복문 - 자동화의 첫 걸음.
[ 4일차 수강 목록 ]
● Java 문법 종합반 1-8. 반복문 까지
● SQL강의 1-5. 필터링할때 유용한 표현 알아보기 까지
학습 키워드
○ for - 조건과 증감식을 포함한 반복
○ break - 반복문을 즉시 종
○ while - 조건이 참일때 반복 실행
○ do - while - 최소 한번 실행 후 조건 검사
(1) 반복문
반복문을 왜 배워야 할까요?
● Java 세상에서 일하는 로봇이 있다고 상상해 봅시다.
● 이 로봇에게 10번 " 안녕하세요! " 라고 인사를 시켜 봅시다.
● 그렇다면 로봇에게 어떻게 명령시켜야 할까요?
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
.... //너무 작성하기 힘들지 않으세요?
너무 비효율적입니다. 10번 정도야 괜찮지만 100번, 1000번이면 어떻게 해야 할까요?
● 일정한 형태의 작업을 반복적으로 수행해야 할 때 필요한 것이 바로 반복문 입니다.
● 반복문을 사용하면 단 한줄로 해결 가능합니다.
for (int i = 1; i <= 10; i++) {
System.out.println("안녕하세요!");
}
(2) for 문의 구조
● for 반복문에서는 반복 작업을 시작하기 전에 종결 조건을 확인 합니다.
● 종결 조건이 참 ( true ) 일 경우 반복을 수생하고 거짓 (false)이면 반복을 끝냅니다.
for (시작조건; 종결조건; 조건변화수식) {
...
}

for (int i = 1; i <= 10; i++) {
System.out.println("안녕하세요!");
}
( 1 - 1 ) for 문 활용법
● 로봇을 통해 손님들에게 인사를 시켜 봅시다.
public class Robot {
public static void main(String[] args) {
int customers = 5;
for (int i = 1; i <= customers; i++) {
System.out.println(i + "번째 손님, 안녕하세요!");
}
}
}
( 1 - 2 ) break 문 (탈출 버튼)과 함께 사용
for문 활용 + break
● break 문은 탈출 버튼이라고 생각 하시면 됩니다.
● 반복을 벗어나야할때 사용 합니다.
public class Robot {
public static void main(String[] args) {
int customers = 5;
for (int i = 1; i <= customers; i++) {
if (i == 4) {
break; // (1) 반복을 벗어납니다.
}
System.out.println(i + "번째 손님, 안녕하세요!");
}
System.out.println("반복문이 종료되었습니다.");
}
}
// 출력 예시:
오늘의 손님 수를 입력하세요: 5
1번째 손님, 안녕하세요!
2번째 손님, 안녕하세요!
3번째 손님, 안녕하세요!
반복문이 종료되었습니다.
● i == 4 일 때 break 가 진행되므로 4번째 손님부터는 출력되지 않습니다.
● 1번째, 2번째, 3번째 손님에게만 인사 후 반목문을 빠져나오게 됩니다.
(1 - 3) continue 문 (건너뛰기 skip 버튼 )
● for문 활용 + continue 문은 건너뛰기 (스킵) 버튼 입니다.
● 특정 회차의 반복을 건너 뛸때 사용 됩니다.
● 2번째 손님에게 인사하고 싶지 않을때 continue문을 활용할 수 있습니다.
public class Robot {
public static void main(String[] args) {
int customers = 5;
for (int i = 1; i <= customers; i++) {
if (i == 2) {
continue; // (1) 반복을 건너 뜁니다.
}
System.out.println(i + "번째 손님, 안녕하세요!");
}
System.out.println("반복문이 종료되었습니다.");
}
}
오늘의 손님 수를 입력하세요: 5
1번째 손님, 안녕하세요!
3번째 손님, 안녕하세요!
4번째 손님, 안녕하세요!
5번째 손님, 안녕하세요!
반복문이 종료되었습니다.
(2) 두번째 반목문 while
● while 반복문은 종결조건만 가지고 있습니다.
● 종결조건식이 true 일때 반복합니다.
● 즉 종결조건이 거짓(false)이 될때까지 명령문을 반복합니다.
-> 무한루프를 조심해야 합니다.
while (종결조건) {
반복할 명령문;
}
int i = 1;
while (i <= 10) { // 1은 10보다 작음으로 반복!
System.out.println("i 가 10 보다 작습니다.");
i++; // ✅ 없을 경우 무한루프 발생
}
(3) 세번째 반복문 do-while
● do-while은 while 문과 비슷하지만 종결조건을 반복 적이 아니라 후에 체크한다는 점 입니다.
do {
반복할 명령문..
} while (종결 조건)
int i = 1;
do {
System.out.println("안녕하세요.");
i++;
} while (i <= 10);
<기출 문제 >
입력한 숫자의 구구단 출력하기
사용자로부터 2-9 사이의 숫자를 입력 받아 해당 숫자의 구구단을 출력하세요.
사용자가 3을 입력하면 3단을 출력해야 합니다. for 또는 whule문을 자유롭게 활용하세요.
package chapter1.loop;
import java.util.Scanner;
// 구구단 만들기
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("출력할 구구단 단수를 입력하세여(2-9): ");
int gugudan = sc.nextInt();
// 2-9 사이의 숫자인지 확인
if(gugudan < 2 || gugudan > 9) {
System.out.println("2에서 9 사이의 숫자를 입력하세요!");
} else {
System.out.println("====" + gugudan + "단 ====");
for (int i = 1; i <= 9; i++) {
System.out.println(gugudan + " x " + i + " = " + (gugudan * i));
}
}
}
}
[ 과제 ] 조건문과 반복문
package chapter1.loop;
public class GradeCalculator {
public static void main(String[] args) {
// TODO: 5개 과목 점수 배열 생성
int[] scores = {85, 92, 78, 88, 95}; // 예시 점수
// TODO: 총합 계산 (for문 사용)
int total = 0;
for (int i = 0; i < scores.length; i++) {
// 총합 계산 코드 작성
total += scores[i];
}
// TODO: 평균 계산
double average = 0.0;
average = total / scores.length;
// TODO: 학점 결정 (if-else문 사용)
char grade = 'F';
if(average >= 90) {
grade = 'A';
}
else if(average >= 80) {
grade = 'B';
}
else if(average >= 70) {
grade = 'C';
}
else if(average >= 60) {
grade = 'D';
}
// TODO: 결과 출력
System.out.println("=== 성적 계산기 ===");
System.out.println(" 총점: " + total + " 평균: " + average + " 학점: " + grade);
}
}
MY SQL 1 - 4 필요한 사항만 뽑아서 사용하기
1) 원하는 컬럼을 선택하기
● 테이블의 모든 컬럼이 필요하지 않을 때, 필요한 것만 선택하여 조회 가능합니다.
● 모든 것을 조회한다는 '*' 대신에, 필요한 컬럼만 적어 줍니다.
select 컬럼1, 컬럼2
from 테이블
● 예를들어 주문 테이블에서 주문번호와 식당 이름만 필요할 때, 아래와 같이 적어줍니다.
select order_id, restaurant_name
from food_orders
● 컬럼이 많아서 필요한 정보를 확인하기 어려웠던 것에서, 원하는 컬럼만 조회하는 것으로 바뀐 것을 볼 수 있습니다.

2) 컬럼에 별명(alias)을 주기
● 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있습니다.
이럴때 컬럼 명에 별명을 지정하여 변경할 수 있습니다.
● 별명 지정 방법 : 컬럼 옆쪽에 별명을 적어 줍니다. ( 아래 두 가지 방법 모두 가능합니다)
- 방법1 : 컬럼1 as 별명1
- 방법2 : 컬럼2 별명2
● 별명 지을 때 유의 사항
| 구분 | 영문,언더바 | 특스문자,한글 |
| 방법 | 별명만 적음 | "별명"으로, 큰 따옴표 안에 적어줌 |
| 예시 | ord_no | "ord no" , "주문번호" |
● 위의 예시에서 '주문번호' 와 '식당 이름'을 조회했는데, 컬럼명이 너무 길고 영문이라 보기가 어려웠습니다. 이 때 별명을 아래와 같이 지어주면 됩니다.
○ order_id ord_no
○ restaurant_name > 식당 이름
SELECT order_id "oder_no", price "가격", quantity "수량"
FROM food_orders

1-5 조건에 맞는 데이터로 필터링 하기
1) WHERE 절의 개념
● 데이터 중에 특정 조건을 필터링 해야할 때가 있습니다. '나이 21살인 사람' 과 같은 경우 혹은 다른 툴을 이용하여 필터링을 해봣을 것이다.
● SQL의 'WHERE' 문접을 이용하면 전체 데이터 중 원하는 데이터만 필터링 할 수 있다.
● WHERE의 구조
select *
from 테이블
where 필터링 조건 (eg. 20살 이상)
● 기본 조건은 '='을 통하여 줄수 있다. 고객 (customers) 테이블에서 21살인 사람을 필터링을 하면 아래와 같다.
select *
from customers
where age=21

● 필터링은 숫자가 아닌 문자에서도 사용 가능하다, 문자를 사용 할 때는 작은 따옴표를 사용한다.
> 대소문자 구분 없이 사용 가능한가?
고객 테이블에서 여성을 필터링 하면 아래와 같다.
select *
from customers
where gender='female'

[ MYSQL 과제 ] 이제 좀 벌었으니 flex 한 번 해볼까요?!
-- 5 products 테이블에서 제품 이름(product_name)과 가격(price)만을 선택하는 쿼리를 작성해주세요.
//SELECT product_name, price FROM products;
-- 6 products 테이블에서 제품 이름에 '프로'가 포함된 모든 제품을 선택하는 쿼리를 작성해주세요.
//SELECT id, product_name, price, category, FROM products WHERE product_name LIKE '%프로%';
-- 7 products 테이블에서 제품 이름이 '갤'로 시작하는 모든 제품을 선택하는 쿼리를 작성해주세요.
//SELECT id, product_name, price, category, FROM products WHERE product_name LIKE'%갤%';
-- 8 products 테이블에서 모든 제품을 구매하기 위해 필요한 돈을 계산하는 쿼리를 작성해주세요.
//SELECT SUM(price) AS total_price FROM products;'내일배움캠프 사전 학습' 카테고리의 다른 글
| [5일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기 (0) | 2025.11.14 |
|---|---|
| [5일차] [내일배움캠프 사전캠프] + 반복문 숙제 (0) | 2025.11.14 |
| [3일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기 (0) | 2025.11.12 |
| [2일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기 (0) | 2025.11.11 |
| [1일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기 (0) | 2025.11.10 |