[JAVA] ch3: 비교와 반복 & 메소드

oow·2026년 3월 28일

JAVA

목록 보기
5/13

비교문

비교문은 기본적으로 C와 같다.

단순 if문

if (조건식) {
	명령문;
}

조건식에는 true나 false를 결과값으로 가지는 boolean 변수나 논리 연산이 들어간다.

if-else문

if (조건식) {
	명령문 1;
}
else {
	명령문 2;
}

조건식이 참일 경우 명령문 1을 실행하고, 거짓일 경우 명령문 2를 실행한다. 결과적으로 둘 중 하나의 코드블록만 실행하게 된다.

다중 if-else문

if (조건식 1) {
	명령문 1;
}
else if (조건식 2) {
	명령문 2;
}
.
.
.
else if (조건식 n-1) {
	명령문 n-1;
}
else {
	명령문 n;
}

여러 개의 조건을 확인할 경우 else if를 사용한다. 조건을 하나씩 판별하며 참인 조건식 k가 있을 경우 명령문 k를 실행한 후 if-else문을 탈출한다.

  • 다중 if-else문으로 학점 부여 프로그램을 작성한다.
  • 기존 방식에서 +, 0, -를 부여하고자 할 때, if문 또는 switch문을 길게 작성하기보다는 별도로 코드를 작성하는 것이 좋다.
  • 100점을 예외로 처리하는 것을 생각하지 못해서 나중에 추가했다.
  • A, B, C는 문자(char)로 처리가 가능하지만 A+, B-는 문자열(string)을 사용해야 한다.

switch문

switch () {
	case1:
    	명령문 1;
        break;
	case2:
    	명령문 2;
        break;
    .
    .
    .
	case 값 n-1:
    	명령문 n-1;
        break;
    default:
    	명령문 n;
}

순차적으로 탐색하며 case 값이 식과 일치하면 그 아래의 명령문을 실행한다. break를 만나면 switch문을 탈출한다. case에 따른 명령문을 구분하기 위해 break로 구분해주어야 하지만, 일부러 break를 생략하기도 한다.

default문은 일치하는 case가 없을 때 실행하며, 생략 가능하다. case문의 값으로는 문자, 정수, 문자열 리터럴만 사용 가능하며, 변수, 수식, 실수 리터럴은 불가능하다.



반복문

반복문같은 명령을 여러 번 실행하거나 인덱스를 변경하며 배열을 탐색할 때 사용한다.

for문

for (초기문; 조건식; 반복 후 작업) {
	명령문;
}

초기문을 실행한 후, '조건식이 참 -> 명령문 실행 -> 반복 후 작업'의 과정을 반복한다. 조건식이 거짓이면 for문을 탈출한다. 주로 몇 번 반복할지 정해져 있는 경우에 for문을 사용한다.

초기문에서 인덱스 변수를 정의하는 경우 변수는 반복문 안에서만 유효하다.

  • 1<=n<=10인 홀수들의 합을 출력한다.
  • 1부터 시작하여 반복 후 +2를 해줄 수 있다.
  • 1부터 1씩 더하여 탐색하면서, 홀수인 경우에만 더하도록 작성할 수도 있다.

while문

while (조건식) {
	명령문;
}

while문도 C와 거의 동일하지만, 조건식에는 true와 false만 들어갈 수 있다. 0, 1을 포함한 다른 숫자나 문자는 불가능하다. 조건식이 참인 동안 명령문을 반복한다.

do-while문

do {
	명령문;
} while (조건식)

최초 1회는 무조건 실행하고, 이후 조건식이 참일 때 명령문을 반복한다.

중첩 반복

반복문 안에 반복문이 존재하는 경우이다. 주로 2중 또는 3중을 사용한다.

  • 가로 구구단과 세로 구구단을 출력한다.
  • 인덱스 변수 i, j를 이용하여 구구단을 계산할 수 있다.
  • outer loop(i)가 세로, inner loop(j)가 가로라는 점을 유의한다.
  • printf로 여백 길이를 맞출 수 있다.

continue & break

반복문에서 continue를 만나면 현재 루프를 멈추고 반복문의 처음으로 되돌아가 다음 루프를 시작한다. break를 만나면 반복을 멈추고 반복문을 빠져나간다. 중첩 반복문인 경우 break문이 속한 안쪽 반복문만 탈출한다.

  • 정수 5개를 입력받아 합과 평균을 출력한다. 양수일 경우에만 카운트한다.
  • 0과 음수일 경우 continue문으로 반복을 중단하고 처음으로 돌아갈 수 있다.
  • for문 안에 반복 후 작업(i++)을 넣을 경우 0과 음수도 카운트하게 된다. 따라서 반복문 끝에 넣어 양수일 때만 카운트한다.
  • sum은 int이므로 평균을 계산할 때 (double)로 형변환을 해주어야 정확한 계산이 가능하다.
  • 합을 저장하는 sum은 반복문 밖에서도 사용하므로 반복문 밖에서 선언한다.



메소드

함수와 메소드

int getSum(int i, int j) {
	int sum;
    sum = i + j;
    return sum;
}

함수는 프로그램을 작은 단위로 나누어 구현한 것으로, 특정한 기능을 가지는 독립적인 코드블록이다.

public static int getSum(int i, int j) {
	int sum;
    sum = i + j;
    return sum;
}

메소드는 함수와 유사하며, 객체지향프로그래밍(OOP)에서 사용하는 개념이다.

메소드는 오버로딩을 통해 같은 이름의 메소드를 여러 개 정의할 수 있다. 기능이 같지만 매개변수의 타입이나 개수가 다른 경우 사용한다. 접근 지정자로는 public, private, protected 등이 있다.

  • 사칙연산을 메소드로 구현한다.
  • 0으로 나누는 경우 따로 예외 처리를 해준다.
  • 나눗셈의 결과는 실수인 점을 유의한다.
  • C에서 함수를 사용하는 것과 매우 유사하다.

0개의 댓글