
// 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] + " ");
}
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)+"입니다.");
}
반복문 이용한 문제 풀이
메모리: 74.7 MB, 시간: 0.18 ms
코딩테스트 연습 > 연습문제
정확성: 100.0
합계: 100.0 / 100.0
2023년 12월 6일 10:2:36
프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.
| 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 문 차이를 확실히 공부해두고 각각 많이 사용해 보도록 해야겠다.