반복문을 공부하기 전 사전에 알아야 할 Java의 특성에 대해 먼저 알아보자.
Java는 객체 지향 언어이며 이 특징에 대해 알기 위해서는 크게 오버로딩, 오버라이딩, 추상클래스, 인터페이스 등의 개념이 있다.
1. 오버 로딩 : 오버로딩이란 메서드의 중복을 말하는데 같은 이름으로 여러 역할을 하도록 만드는 기술이다.
2. 오버 라이딩 : 오버라이딩은 간단히 정의해서 부모 클래스에서 정의되어 있는 메서드를 같은 이름으로 다른 역할을 재정의하고 싶을때 사용하게 된다.
3. 추상 클래스 : 추상클래스는 선언만 되어 있고, 구현은 되어 있지 않은 메서드를 추상 메서드라고 하는데 추상 메서드를 하나라도 포함하게 되는 클래스를 추상클래스라고 한다.
4. 인터페이스 : 자바에서는 원칙적으로 다중 상속을 금하고 있다. 이 때 extends 키워드로는 두 개 이상의 클래스로부터 상속받을 수 없는 의미이다. 그러나 다중 상속을 꼭 해야하는 경우가 있는데, 이럴때 사용할 수 있는 것이 인터페이스이다. 인터페이스는 추상메서드와 변수가 아닌 상수만을 소유 할 수 있다.
위 내용은 앞으로 많이 공부 할 것이며 중요하기 때문에 처음 시작 할 때부터 숙지하는것이 중요하다.
오늘 연습 할 내용은 Java에서의 반복문이다.
1. 반복문의 개념
(1) 배열
배열은 동일한 데이터 타입의 여러 값을 저장할 수 있는 자료 구조이다.
ex) int[] numbers = {1,2,3,4,5};
위 예시처럼 정수형으로 numbers라는 배열 안에 5개의 요소가 있는 배열을 생성 할 수 있다.
(2) 사용자 입력 받기
Scanner클래스를 사용하여 사용자로부터 데이터를 입력받을 수 있다.
ex)
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("숫자를 입력해주세요: ");
int number = scanner.nextInt();
System.out.println("입력한 숫자: " + number);
scanner.close();
}
}
위 예시 처럼 문자를 입력 받고 입력된 결과를 출력 할 수 있다.
(3) 반복문으로 배열 순회
반복문을 사용하여 배열의 각 요소를 하나씩 검사 할 수 있다.
ex)
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
(1) 1~100까지의 숫자를 출력하기(for)을 사용하기
import java.util.;
import java.lang.;
import java.io.*;
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
System.out.print(i + " ");
}
}
}
for문에서 i를 1로 최기화 하고 반복문을 실행한다. 첫 번째 숫자인 1을 출력하고 다시 반복문으로 돌아와 i++을 수행하여 1,2,3,4,~,99,100 이 출력 될때까지 반복문을 수행한다.
(2) 반복문을 사용하여 1부터 100까지의 숫자 중 짝수만 출력하기
import java.util.;
import java.lang.;
import java.io.*;
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
if(i % 2 == 0) {
System.out.print(i + " ");
}
}
}
}
반복문에서 짝수만 선별하기 위하여 if(조건문)을 추가하여 i를 2로 나누었을때 0으로 출력되는 짝수만 출력 할 수 있도록 조건문을 추가 하였다.
(3) 구구단 출력하기
2단부터 9단까지의 구구단을 출력하기
import java.util.;
import java.lang.;
import java.io.*;
public class Main {
public static void main(String[] args) {
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
int sum = i * j;
System.out.println(i + " x " + j + " = " + sum);
}
System.out.println();
}
}
}
먼저 i와 j의 각각 반복문으로 생성하여 차례대로 출력되도록 만들었고 두 for문을 지난 뒤 sum이라는 변수에 i와j곱을 저장하였고 출력단에서 각 요소별로 출력될 수 있도록 변수를 설정 하였다.
이것으로 반복문에 대해 공부해 보았다. 각각의 반복문의 형태를 파악 할 수 있다면 빠르게 배열을 생성하고 출력단에서 출력결과를 확인 할 수 있었다. 하지만 다중 for문의 경우 생각보다 형태 파악이 어려워 혼란스럽고 시간이 많이 지체 되었다. 다중 for의 경우 좀더 많은 학습량이 필요하다고 느껴졌다.