일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- back-end
- Nest.js
- swagger
- 개발이 취미인 사람
- 코틀린
- AWS
- javascript
- front-end
- 조건문
- Kotlin
- 상속
- kafka
- java
- react
- Sequelize
- state
- 개발자
- SWIFT
- restful api
- 자바
- node.js
- file upload
- spring boot
- props
- vue
- class
- Producer
- component
- 반복문
- It
- Today
- Total
개발이 취미인 사람
[Java] 반복문 for 문 for each 문 본문
- 지난 시간
안녕하세요. 지난 시간에는 while문에 대해 알아봤습니다.
혹시 놓치고 오신 분들은 아래 링크를 통해 확인하고 오는 걸 추천드리겠습니다.
- 개요
프로그래밍을 하다 보면 반복적인 코드나 반복적인 작업을 하게 됩니다.
만약 반복문이라는 기술이 없었다면... 정말 반복적인 작업을 계속해야 됩니다. (실질적으로 개 짜증입니다...)
이번 시간에는 이런 반복적인 노가다 작업을 줄여줄 반복문에 대해 알아보겠습니다.
자바에서는 3가지 방법이 있습니다.
- while 문
- for 문
- for each 문
이번 시간에는 for문과 for each문에 대해 알아보겠습니다.
- 사용법
for 문 기본 문법
for문은 "for(초기값; 조건문; 초기 증가값;)" 으로 설정할 수 있습니다.
머릿속에 바로 그려지지 않으실 것 같아서 바로 예시를 보여드리겠습니다.
package com.company;
public class Main {
public static void main(String[] args) {
int coffee = 10; // 커피 양
int money = 10; // 돈
System.out.println("for문 실행");
for (int i = 0; i < money; i++) {
coffee--;
System.out.println("남은 커피의 양은 " + coffee + "입니다.");
if(coffee == 0){
System.out.println("장사 끝!! :) ");
}
System.out.println("힘들다... 힘내자!!");
}
System.out.println("for문 끝!");
}
}
위 예시를 설명하겠습니다.
초기 값은 0이고 조건은 i < money 보다 작을 때까지 반복문이 실행되면서 실행될 때마다 초기 증가 값이 실행되면서
i 값은 증가됩니다. (1씩 증가!!)
그리고 i 값이 10이 되면 if 조건문[ if(coffee == 0) ]이 한번 실행되고 반복문을 빠져나오게 됩니다.
for 무한 루프
for문도 무한루프로 실행할 수 있습니다.
package com.company;
public class Main {
public static void main(String[] args) {
for(;;){
System.out.println("for문 무한 반복...");
}
}
}
for(;;) 세미콜론 두 개를 넣으면 무한루프가 됩니다.
for문 빠져나가기 (break) & for문 조건으로 돌아가기 (continue)
for 문에도 while문처럼 break와 continue가 있습니다.
1. for문 빠져나가기(break)
package com.company;
public class Main {
public static void main(String[] args) {
int coffee = 9; // 커피 양
int money = 10; // 돈
System.out.println("for문 실행");
for (int i = 0; i < money; i++) {
if(money == 100){
System.out.println("장사 끝!! :) ");
break;
}
money += 10;
coffee--;
System.out.println("돈을 받았으니 커피를 판매합니다. 현재 자금: "+money);
System.out.println("남은 커피의 양은 " + coffee + "입니다.");
System.out.println("힘들다... 힘내자!!");
}
System.out.println("for문 끝!");
}
}
위 예시를 보면 for문이 실행되면서 money 변수 값이 100이라면 break 코드를 통해 for 문을 빠져나갑니다.
2. for문 조건으로 돌아가기 (continue)
package com.company;
public class Main {
public static void main(String[] args) {
int coffee = 9; // 커피 양
int money = 10; // 돈
System.out.println("for문 실행");
for (int i = 0; i < money; i++) {
if(money == 100){
System.out.println("장사 끝!! :) ");
break;
}
money += 10;
coffee--;
System.out.println("돈을 받았으니 커피를 판매합니다. 현재 자금: "+money);
System.out.println("남은 커피의 양은 " + coffee + "입니다.");
if(money == 100){
System.out.println("돈을 다 모았습니다.");
continue;
}
System.out.println("힘들다... 힘내자!!");
}
System.out.println("for문 끝!");
}
}
위 예시를 보면 for문이 실행되고 money 값이 100이면 밑에 print 코드가 실행되지 않고 for 문으로 갑니다.
그리고 마지막으로 break; 코드를 만나 for문이 종료됩니다.
- for each 기본 문법
for each는 while for문과 다르게 사용됩니다. 설명을 길게 하는 것보다는 직접 예시를 통해 보여드리겠습니다.
1. for each문
package com.company;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> userList = new ArrayList<String>();
userList.add("유저1");
userList.add("유저2");
userList.add("유저3");
userList.add("유저4");
userList.add("유저5");
for(String user: userList) {
System.out.println(user);
}
}
}
2. for문
package com.company;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> userList = new ArrayList<String>();
userList.add("유저1");
userList.add("유저2");
userList.add("유저3");
userList.add("유저4");
userList.add("유저5");
for (int i = 0; i < userList.size(); i++){
String user = userList.get(i);
System.out.println(user);
}
}
}
두 코드는 결과가 동일하다. 하지만 ArrayList라는 자료형에서 데이터를 접근해서 값을 가져오는 방식이 다르다.
for each 구조는 다음과 같습니다.
for(type data: iterate) {
}
여기서 반복되는 iterate는 객체입니다. 객체에 대한 개념은 제가 Class 글에서 설명해드리겠습니다.
for each는 객체에 크기만큼 반복 횟수를 정합니다.
임의로 반복 횟수를 정할 수 없습니다. 참고세요. :)
'언어(Programming Language) > Java' 카테고리의 다른 글
[Java] Class Method 사용법 (6) | 2021.01.24 |
---|---|
[Java] Class 개념 및 사용법 (0) | 2021.01.24 |
[Java] 반복문 while 문 (0) | 2021.01.23 |
[Java] 조건문 If문 switch/case문 (0) | 2021.01.23 |
[Java] 자료형, 변수, 상수 개념 및 사용법 (0) | 2021.01.23 |