자바를 나름 공부했다고 생각했지만, 스스로 코딩테스트를 풀고자 했을 때 막히는 부분이 한 두가지가 아니였다. Java 언어 자체 문법부터 제대로 다시 정리해야겠다.
우선, 코딩테스트에 조건문과 반복문을 기본으로 사용하는 문제들이 많이 나왔다. 조건문은 나름 풀어나갔지만, 내가 막혔던 부분들은 거의 다 반복문을 사용하는 문제들이였다. 그래서 다시 반복문을 복습하고 정리하고 예제를 풀어보았다.
반복문이란?
반복문이라는 말 뜻을 그대로 풀이하면 말그대로 반복하는 명령어이다.
무언가를 계속해서 반복하는 것인데
프로그래밍에서는 반복문에 해당하는 { } 안의 내용이 계속해서 반복하는 것을 뜻한다.
즉, 똑같은 행동을 계속해서 반복하게 되는 것이다.
그렇기 때문에 똑같은 내용을 계속해서 출력해야하거나 같은 동작을 계속 반복해야할 때 이 반복문이라는 것을 사용해서
코드의 길이도 줄이고 효율성도 극대화하는 것이다.
기본 for 루프:
for (초기화; 조건식; 증감식) {
// 반복 실행할 코드
}
향상된 for 루프: (단축키 iter으로 완성되는데 iterable 컬렉션 인터페이스 때문이라한다.)
for (데이터타입 변수명 : 배열 또는 컬렉션) {
// 반복 실행할 코드
}
개념을 다시 한 번 본 이후, 바로 지피티에게 예제를 달라하여 풀어보았다.
package practice;
public class Loop {
public static int add(int[] numbers) {
int sum = 0;
for (int number : numbers) {
sum += number;
}
return sum;
}
public static int max(int[] numbers) {
int max = numbers[0];
for (int number : numbers) {
if (max < number) {
max = number;
}
}
return max;
}
}
우선 배열의 합과, 최대값을 찾는 메소드 클래스이다. ( 나머지는 시간 절약 상 메인 클래스에서 바로 처리했음)
package practice;
import java.text.Format;
public class LoopMain {
public static void main(String[] args) {
int[] numbers = {4, 8, 15, 16, 23, 42};
for (int number : numbers){
System.out.println(number); //문제 1
}
int add = Loop.add(numbers);
System.out.println("각 배열의 모든 요소의 합" + add); //문제 2
int max = Loop.max(numbers);
System.out.println(max); //문제3
for (int dan = 2; dan <= 9; dan++) {
for (int i =1; i<=9; i++) {
System.out.print(dan + "*" + i + "=" + dan*i + System.lineSeparator());
}
System.out.println(); //문제 4
}
for (int number : numbers) {
if (number % 2 == 0) {
System.out.println(number); //문제 5
}
}
String[] fruits = {"apple", "banana", "cherry", "date", "fig"};
for (String fruit : fruits) {
System.out.println(fruit); //문제 6
}
}
}
풀어보니 배열은 for문과 같이 쓰이는 경우가 많았다. 배열의 각 요소들을 순회하게끔 해주는 것이 반복문이기 때문이다.
내가 프로젝트를 진행하는 과정에선 배열보단 리스트, 맵 자료형과 같은 컬렉션 프레임워크를 많이 썼지만, 기본기도 없이 썼기 때문에
배열과 같은 기본 개념부터 차근히 다시 공부해야겠다.
조언 해준 준섭아 고마워..🐷
'Language > ☕ Java' 카테고리의 다른 글
[Java] 다형성이란? (2) | 2024.08.13 |
---|---|
[Java] 상속 (0) | 2024.08.12 |
[Java] 메모리 구조 & static (2) | 2024.08.07 |
[Java] 접근 제어자 (0) | 2024.08.07 |
변수란? (전역 변수,매개변수, 인스턴스 변수, 클래스 변수) (0) | 2024.05.23 |