내일배움캠프 11일차 TIL - 반복문

iy·2023년 12월 31일

TIL

목록 보기
10/37

반복문

  1. for문
        // for문
        // (초기값;조건문;증가연산)
        for(int i=0; i < 4; i++){
            System.out.println(i + " 번째 출력!");
        }

        // 향상된 for문
        // 기존 : for문 안에 3개의 표현이 들어감 -> (초기값;조건문;증가연산)
        // 향상된 for문 : 2개로 줄여줌
        int[] numbers = {3,6,9,12,15};
        for(int number : numbers){
            System.out.println(number + " ");
        }

        int[] numbers2 = {3,6,9,12,15};
        for(int i =0; i <numbers.length; i++){
            System.out.println(numbers[i] + " ");
        }
  1. while문, do- while문
  • for문과 동일하게 특정 조건에 따라 연산을 반복해서 수행하고 싶을 때 사용
  • 다른점은 초기값 없이 조건문만 명시하여 반복
  • while(조건문){(연산)} 형태 (while문)
    • while문으로 사용하면 조건문을 만족해야만 연산이 반복수행됨
    • 한번 반복할때마다 조건문을 체크해서 조건문이 false이면 반복 중단
  • do{(연산)} while(조건문) 형태 (do- while문)
    • do-while문 사용시 최초 1회 연산 수행 후 조건문을 체크하여 더 반복할지 결정
    • 반복하게 된다면 그 이후에는 한번 반복할때마다 조건문을 체크해서 조건문이 false 이면 반복
        int number= 0;
        // while문
        while (number < 3) { //number < 3인 동안~
            number++;//2
            System.out.println(number + "출력!");
        }

        System.out.println("=============================");

        // do-while문
        int number2 =4;
        do {
            // 이 로직을 먼저 수행하겠다(반복문 돌기 전에 꼭 수행했으면 하는 문이 있으면 do-while사용
            System.out.println(number2 + "출력~");
        } while (number2 <3);

        System.out.println("============================");

        // break
        // 가장 가까운 블럭의 for문 또는 while, switch문 중단
        int number3 =0;
        while(number3 <3){
            number3++;
            if(number3 == 2) {
                break;
            }
            System.out.println(number3 + "출력!!");
        }

        System.out.println("=========================");

        for(int i =0;i<10;i++){
            System.out.println("i : " + i );
            if(i ==2){
                break;
            }
            for (int j =0;j<10;j++){
                System.out.println("j : " + j );
                if(j == 2){
                    break;
                }
            }
        }

        // continue
        int number4 = 0;
        while (number4 < 3) {
            number4++;
            if(number4 == 2){
                continue; // continue를 만나는 순간 하위 로직을 안 타고 바로 다음 반복으로 넘어감
                // break와 continue의 차이는 break는 걸리는 순간 반복문 자체를 빠져나가고 continue는 해당 조건을 건너 띄고 다음 반복으로 넘어감
            }
            System.out.println(number4 + "출력!!!!!");
        }
        // 연습문제
        //입력받는 단을 제외하고 출력!
        Scanner scan = new Scanner(System.in);
        int passNum = scan.nextInt();//출력을 제외할 구구단 수 값

        System.out.println("입력한 값 제외하고 구구단 출력");
        //구구단
        for(int i=2; i <= 9; i++){ //구구단 첫 번째 수
            if( i == passNum){
                continue;
            }
            for(int j=2;j<=9;j++){ //구구단 두 번째 수
                System.out.println(i + " 곱하기 "+ j + "는 " + (i*j)+"입니다.");
            }
        }

        System.out.println("입력한 값만 구구단 출력");

        for(int k=2;k<=9;k++){ //구구단 두 번째 수
            System.out.println(passNum + " 곱하기 "+ k + "는 " + (passNum*k)+"입니다.");
        }

반복문 이용한 문제 풀이

[level 1] 핸드폰 번호 가리기 - 12948

문제 링크

성능 요약

메모리: 74.7 MB, 시간: 0.18 ms

구분

코딩테스트 연습 > 연습문제

채점결과

정확성: 100.0
합계: 100.0 / 100.0

제출 일자

2023년 12월 6일 10:2:36

문제 설명

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

제한 조건
  • phone_number는 길이 4 이상, 20이하인 문자열입니다.
입출력 예
phone_number return
"01033334444" "*******4444"
"027778888" "*****8888"

내가 제출한 풀이(for문)

class Solution {
    public String solution(String phone_number) {
        String answer = "";
        String[] str = phone_number.split("");
        for(int i = 0; i<str.length; i++){
            str[i] = (i < str.length-4 ? "*" : str[i]);
        }
        answer = String.join("",str);
        return answer;
    }
}

우선 문자열인 phone_number를 split()메서드를 이용해 배열로 만들었다. 후에 반복문을 이용해 문제에서 제시한 뒤에 네자리를 제외하고 "*"로 바꿔주었다.
마지막으로 join메서드를 이용해 배열을 합해 문자열로 만들어 결과값으로 만들었다.
이 문제의 다른 분들이 풀은 더 좋은 풀이들이 많았지만 그건 추후에 더 공부해서 따로 올리도록 하겠다.

while문(강의 중 실습 때 사용)
벨로그 오류 때 정리해 둔 내용이라 벨로그에 다시 업로드 후 링크 추가 예정


👀
코딩 테스트 준비를 이제 막 시작했지만 짧은 시간 내에 가장 많이 사용한 것이 for 문이었다. while 문도 실습 때 사용했는데 for 문만큼 사용하진 않았다.
이번에 강의를 들으면서 for 문과 while 문 차이를 확실히 공부해두고 각각 많이 사용해 보도록 해야겠다.

0개의 댓글