7일차.
엑셀에선 경험해보지 못한 반복문.
조건문과 다르게 실행 시 연산과정이 직관적으로 떠오르지 않아 조금 어려움을 겪었다.
IDE에서 디버그를 통해 각 연산을 단계적으로 확인할 수 있다고 하니, 활용하며 익숙해져보자.
코드스테이츠 7일차는 2023년 4월 19일이었다.
노션에 적어논 것을 티스토리로 옮기면서 다시 쭉 훑고 있는데, 잘 이해하고 써두었다고 생각했으나 다시 보니 더 잘 보이는 것들이 있었다.
주기적으로 크게 훑는 것도 필요해보인다.
노션글을 보니 이 무렵부터 프로그래머스 lv.0 문제를 풀기 시작한 듯하다.
for문
: 반복문을 반복해야할 횟수를 알고 있을 때 주로 사용, 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복수행한다.
for(반복자 선언 및 초기화; 조건식; 증감식){
실행코드
}
// 예시
for(int i =0; i < 10; i++){
System.out.print(i);
}
/*출력
0123456789
*/
향상된 for문 (for each)
: 배열 및 컬렉션 항목의 요소 개수만큼 반복하고, 자동적으로 for문 이탈. 반복자와 증감식X
public class Main{
public static void main(String[] args){
String[] thieves = {"홍길동", "임꺽정", "장길산"};
for(String name : thieves){
System.out.println(name);
}
}
}
/*출력
홍길동
임꺽정
장길산
*/
while문
: 조건에 따라 반복할 때 주로 사용, 조건식이 true일 경우 계속 반복. 시작부터 조건식을 검사하여 블록 내부를 실행할지 결정
- 다만, 조건식을 true로 두면 무조건적으로 실행 가능. 이 경우 무한루프를 돌 가능성이 있어 탈출 조건을 마련해야함.
- while문 내에 조건문 추가 = 조건 만족 시 break를 이용하면 반복문 종료 가능
(초기화);
while(조건식){
실행문;
증감식;
}
//초기화와 조건식은 생략 가능.
//실행문 내용에 따라 증감식도 생략 가능.
int num=0, sum=0;
while(sum<100){
sum += num;
num++;
System.out.println(sum);
// if(num==10){break;} // while의 조건식인 sum<100이 아직 true더라도, break를 이용해 강제 탈출
}
/*출력
0
1
3
6
10
15
21
28
36
45 // 만약 주석처리된 탈출조건이 실행된다면 여기까지만 출력됨.
55
66
78
91
105
*/
------------------------------------------------
boolean run = true;
int num =1;
while(run){
num++;
System.out.println(num);
if(num == 5){run = false;} // num이 5가 되면 탈출
}
/*출력
1
2
3
4
5
*/
do-while문
: 실행문 우선 실행 후, 실행결과에 따라 반복실행 여부 결정
- 실행문 실행 후, 조건식 평가
- 조건식 = true : do실행문 실행
- 조건식 = false : 종료시 실행문 실행
do {
실행문 //처음 한 번은 무조건 실행
} while(조건식); // 이후 조건식이 true이면 do실행문으로 회귀, 조건식이 틀릴 경우 종료
종료 시 실행문
// 예제 코드
import java.util.Scanner;
public class Main {
public static void main(String args[]){
int input = 0, randomNum = 0;
randomNum = (int)(Math.random() * 10) + 1; // 1 ~ 10 임의의 수를 생성
Scanner sc = new Scanner(System.in);
do{
System.out.println("1과 10 사이의 정수를 입력하세요");
input = sc.nextInt();
if(input > randomNum) {
System.out.println("더 작은 정수를 입력하세요");
} else if (input < randomNum) {
System.out.println("더 큰 정수를 입력하세요");
}
} while(input != randomNum);
System.out.println(randomNum +" 정답입니다!");
}
}
break문
: for, while, do-while, swith문에서 사용
- 위에 잠깐 언급했지만, 보통 if문과 함께 사용하여 탈출조건 - 탈출의 형태로 사용됨
- 중첩반복문의 경우, break문은 가장 가까운 반복문만 종료된다.
- 다만 탈출하고자 하는 반복문에 라벨을 붙이면 원하는 반복문 탈출도 가능하다.
public class Main {
public static void main(String[] args) {
Outer : for (int i = 3; i < 10; i++) {
for (int j = 5; j > 0; j--) {
System.out.println("i " + i + " j "+ j);
if (i == 5) {
break Outer; //바깥 for문까지 빠져나올 수 있도록, 해당 for문에 Outer 라벨
}
}
}
}
}
/*
i 3 j 5
i 3 j 4
i 3 j 3
i 3 j 2
i 3 j 1
i 4 j 5
i 4 j 4
i 4 j 3
i 4 j 2
i 4 j 1
i 5 j 5
*/
continue문
: for, while, do-while문에서 사용
- break문과 마찬가지로 if문과 함께 사용된다.
- 해당 조건을 충족할 경우, 실행문을 패스하고 다음 반복으로 넘어가는 형태로 흔히 사용된다.
public class Main {
public static void main(String[] args) throws Exception {
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) { // 짝수일 경우,
continue; //다음 반복으로 넘어간다.
}
System.out.println(i); //홀수만 출력
}
}
}
'코드스테이츠 > Section 1 JAVA' 카테고리의 다른 글
2023.04.21 9일차. 클래스와 객체 (0) | 2023.07.14 |
---|---|
2023.04.20 8일차. 배열 (0) | 2023.07.14 |
2023.04.18 6일차. 조건문(if, switch) (0) | 2023.07.13 |
2023.04.17 5일차. JAVA의 기본 (0) | 2023.07.13 |
2023.04.14 4일차. Git과 Github (0) | 2023.07.13 |