Java

Java 반복문, 조건문, 메서드

코드깎는머슴 2024. 2. 25. 14:39
728x90
반응형

반복문

 

공통 키워드

    - break     : 현재 실행 중인 반복문 종료.
    - continue  : 현재 사이클 생략하고 다음 사이클로 넘어감


for

    - 반복문의 기준이 되는 변수(주로 인덱스)를 활용하여 특정 구현부를 반복하고자 할 때 사용

for([변수 선언 및 초기화]; [반복 조건]; [변수 가감 및 할당]){
    [구현부]
}


1. for 반복문을 위한 변수를 선언 혹은 초기화한다.
2. 반복 조건이 참(true)인지 확인
        a. 반복 조건이 참이면 [구현부]를 1회 실행하고 3으로 이동
        b. 반복 조건이 거짓이면 for 반복문 종료
3. 변수 가감 및 할당을 실시하고 2로 돌아감

1부터 5까지의 정수를 출력하기 위해 아래와 같이 작성할 수 있다.

for(int i = 1; i <= 5; i++){
    System.out.println(i);
}



향상된 for

    - 반복할 수 있는 대상(대표적으로 배열)이 가지는 인자의 값에 대해 반복하기 위해 사용한다.
    - 순번에 대한 변수가 필요 없을 경우 순번 범위 오류 및 가독성 향상 등을 위해 가능한한 향상된 for 반복문을 사용하는 것이 좋다.

for([변수 혹은 상수 선언] of [반복 대상]){
    [구현부]
}



while

    - 주어진 조건이 참일 때(횟수와 관계 없이) 구현부를 실행

while([조건]){
    [구현부]
}


만약 [조건]이 항상 참이거나, 거짓으로 변하는 경우의 수가 없다면, 무한 반복

do ... while

    - while과 유사하나 조건과 관계 없이 최초 한 번은 반드시 구현부 실행

do {
    [구현부]
} while([조건]);


만약 [조건]이 항상 참이거나, 거짓으로 변하는 경우의 수가 없다면, 무한 반복


조건문

if

    - 주어진 조건이 참일 때만 구현부 실행  

if([조건]){
    [구현부]
}



if/else

    - else문은 앞서 제시된 모든 조건이 거짓일 때 최종적으로 실행항 구현부를 위해 사용
    - else문은 if문 당 반드시 한 개 이하만 존재해야 함
    - else문은 if문의 마지막 구문이어야 함
    - 단순 if-else문은 주어진 두 개의 구현부 중 하나가 반드시 실행

if([조건]){
    [구현부]
}else{
    [구현부]
}



if/else if

    - else if문은 선행하는 조건이 거짓일 때 부차적인 조건을 추가하여 조건적으로 구현부를 실행하고자 할 때 사용
    - else if 문은 하나의 if 문에 여러개가 사용될 수 있다.
    - else if 문의 조건이 참이라 하더라도 선행하는 if문 혹은 else if 문의 조건이 참이어서 선행하는 구현부를 실행하였다면, 후행하는 구현부는 실행되지 않는다

if([선행 조건]){
    [선행 구현부]
} else if ([부수 조건 1]){
    [부수 조건1 구현부]
} else if ([부수 조건 2]){
    [부수 조건2 구현부]
}


부수 조건 1 구현부가 실행되었다면, 이는 선행 조건이 거짓이라는 의미
부수 조건 2 구현부가 실행되었다면, 이는 선행 조건 및 부수 조건 1이 모두 거짓이라는 뜻


if/else if/else

     - if문은 else if와 else 문을 모두 가질 수 있다. else문은 반드시 마지막에 한개만 위치할 수 있다   

if([선행 조건]){
[선행 구현부]
} else if ([부수 조건 1]){
[부수 조건1 구현부]
} else if ([부수 조건 2]){
[부수 조건2 구현부]
} else {
[거짓 구현부]
}


거짓 구현부가 실행되었다면 선행 조건, 부수조건1, 부수조건2 모두 거짓이라는 뜻
하나의 if문이 가지는 구현 부 중 한개 이하만 실행될 수 있따.(여타 조건이 참이어도, 선행구현부가 실행되었으면 후행하는 조건 및 구현부는 무시)


switch

    - 분기문은 분기 대상 변수가 가지는 값에 따라 case를 활용하여 실행할 구문을 분리하기 위해 사용       

switch([분기 대상 변수]){
    case [값 1]:
        [값 1 구현부]
        [break;]?
    case [값 2]:
        [값 2 구현부]
        [break;]?
    case [값 3]:
        [값 3 구현부]
        [break;]?
    [...]
    [default:]?
}


break 키워드는 해당 위치에서 switch 분기문을 종료하겠다는 의미
default 키워드는 선행하는 case 중 분기 대상 변수가 가지는 값과 일치하는 것이 없을 때 최종적으로 실행하는 일종의 else 역할
deault는 반드시 한 개 이하만 존재, 마지막에 위치


메서드(메소드, Method)

    - 클래스가 가지는 멤버(Member) 중 하나이며, 호출 가능한 동작 단위이다.
    - 메서드 작성 시, 메서드의 이름에 따라 최소한의 역할만 하도록 로직을 작성하는 것이 중요하다.
    - 명명법: 동사(Verb)로 시작하는 카멜 케이스
    - 메서드의 구조

[접근 제한자] [abstract|final|static]? [반환 타입|void] [메서드 이름] ([매개 변수, ...]?){
    [구현부]
}


        abstract    : 추상적임을 나타내는 키워드
        final       : 불변임을 나타내는 키워드
        static      : 정적임을 나타내는 키워드
        void        : 해당 메서드의 반환 값이 없음을 의미한다. (호출 결과 없음)
        해당 메서드에 반환타입이 있을 경우( void가 아닐 경우) 반드시 모든 경우의 수에 return 키워드를 사용하여 타입에 부합하는 값을 반환하거나 throw 키워드를 사용하여 예외를 발생시켜야 한다.


매개 변수(Parameter)

    - 메서드가 요구하는 변수 구성
    - 해당 메서드를 호출할 때 요구되는 매개 변수에 대해 전달하는 값을 전달 인자(Argument)라고 한다.
    - 명명법: 카멜 케이스
    - 매개 변수의 구조는 아래와 같다.

[final]? [타입] [이름]
728x90
반응형