프로그램을 작성할 때 똑같은 코드를 반복하고 싶을 때가 있다. 그럴 때 사용하는 게 루프이다. 루프에는 여러 종류가 있는데, 그중에서도 for 루프는 몇 번 반복하고 싶은지 미리 알 때 유용하다.
1. for루프 문법
for 루프에 필요한 것은 크게 3가지이다.
1. for 루프가 몇 번 실행됐는지 추적해 주는 변수
2. for루프가 멈추는 조건 (몇 번 실행할지)
3. for 루프가 실행될 때 마다 변수를 늘려주는 것
이게 무슨 말인지는 실제 코드를 보고 확인해보자.
int i;
for(i = 0; i < 2; i++) {
System.out.println("자바는 재밌어!");
}
우선 첫 번째 재료인 변수를 선언하고, 그 변수를 0으로 만들어 줬다. for루프가 아직 한 번도 실행되지 않았기 때문에 0이라 했다. 두 번째 재료인 멈추는 조건은 i < 2이다. 즉, i가 지금은 0이지만, i가 2보다 작지 않은 경우, 즉, 2 거나 2보다 커질 경우 for 루프는 멈추는 것이다. 마지막으로 한 번 실행될 때 마다 i를 1씩 증가시킨다.
변수의 선언은 for루프 안에서 해도 상관없다.
for(int i = 0; i < 2; i++) {
System.out.println("자바는 재밌어!");
}
2. break, continue
for루프를 사용할때 특정 조건에서는 for루프를 끝내거나, 특정 조건에서 넘어가고 다음조건을 바로 실행하고 싶을때가 있다. 그럴때 바로 break와 continue를 사용한다.
예를 들어, 1부터 10까지 5는 제외하고 출력하고 싶다고 해 보자. 이 경우 그냥 for루프를 사용할 경우 5를 제외하고 출력할 방법이 없다. 하지만 continue를 사용하면 가능하다.
public class Ex1 {
public static void main(String[] args) {
for(int i = 0; i <= 10; i++) {
if(i == 5) {
continue;
}
System.out.println(i);
}
}
}
위의 코드는 for루프 안에 조건문을 설치해서 i가 5일 경우 다음 순서로 넘어가서 5만 출력하지 않게 하는 코드이다.
비슷하게 break는 바로 루프에서 나오는 예약어(Keyword)이다. 위의 코드에 continue 대신 break를 사용하면 1부터 4까지만 출력된다.
public class Ex1 {
public static void main(String[] args) {
for(int i = 0; i <= 10; i++) {
if(i == 5) {
break;
}
System.out.println(i);
}
}
}
3. for 루프 예제
1. 유저로부터 문장과 숫자를 받아와서 원하는 숫자만큼 문장 반복하기.
import java.util.Scanner;
public class Ex1 {
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
System.out.print("원하는 문장을 입력하세요: ");
String sentence = stdin.nextLine();
System.out.print("몇 번 반복할까요? ");
int count = stdin.nextInt();
for(int i = 0; i < count; i++) {
System.out.println(sentence);
}
}
}
2. for 루프를 사용해 1부터 100까지 더하는 프로그램
public class Ex2 {
public static void main(String[] args) {
int sum = 0;
for(int i = 0; i < 101; i++) {
sum += i;
}
}
}
'👨💻 프로그래밍 > 📦 Backend' 카테고리의 다른 글
자바 15 - 배열(Arrays) (0) | 2021.04.30 |
---|---|
자바 14 - while 루프 (0) | 2021.04.28 |
자바 12 - String의 모든 것! (0) | 2021.04.24 |
자바 11 - 유저로부터 데이터 받아오기 (Scanner 클래스 사용) (0) | 2021.04.22 |
자바 10 - Math 클래스에 있는 매소드 활용 (0) | 2021.04.20 |