본문 바로가기

All Categories/BE & Java

개발일지 #4 - Java Scanner, 제어문, Dead Code

반응형

Scanner

콘솔에서 사용자의 입력을 받아줄 수 있는 클래스로, java.util 패키지에서 제공됩니다.

Scanner [객체이름] = new Scanner(System.in);

주요 메서드

1. nextInt(): 정수값(int)을 입력받을 수 있음
2. next(): 문자열(String) 값을 입력받을 수 있음. 띄어쓰기 전까지의 값만 저장 가능
3. nextLine(): 엔터 입력 전까지의 문자열 값을 입력받을 수 있음
4. nextDouble(), nextBoolean() 등 자바의 기본 타입 변수를 받아주는 메소드 각각이 있음

import

Scanner 클래스를 import 하기 위해서는 마우스로 해당 위치에 가져가서 import 'Scanner' (java.util)을 클릭하거나, ctrl + Spacebar를 입력하여 import할 수 있습니다.


자바 제어문

코드가 순서대로 진행되지 않고 조건에 따라 일부분만 실행하거나, 일부 코드를 반복하여 실행할 수 있도록 하는 문법입니다. 조건문, 반복문이 있습니다.

조건문

특정 조건을 만족하거나 만족하지 않을 때의 코드를 분리하여 실행합니다. 조건식에는 반드시 boolean 타입의 변수 또는 식이 올 수 있습니다.
if, else if, else, switch case

1. if문 (if statement)

// if만
if ([조건식]) {
    조건을 만족했을 때 실행할 코드 블록
}

// 실행할 문장이 한줄이라면
if ([조건식])
    조건을 만족했을 때 실행할 코드 한 줄

// if else
if ([조건식]) {
    조건을 만족했을 때 실행할 코드 블록
} else {
    조건을 만족하지 않았을 때 실행할 코드 블록

// if else if else if else
if ([조건식1]) {
    조건1을 만족했을 때 실행할 코드블록
} else if ([조건식2]) {
    조건2을 만족했을 때 실행할 코드블록
} else if ([조건식3]) {
    조건3을 만족했을 때 실행할 코드블록
} else {
    조건 1, 2, 3 모두 만족하지 않았을 때 실행할 코드 블록
}

2. 중첩 if문

하나의 조건을 만족한 상태에서 다른 조건을 더 따져보는 것으로, if문을 중첩해서 사용하는 문법입니다.

if ([조건1]) {
    if ([조건2]) {
        조건1, 2를 모두 만족하는 경우
    } else if ([조건3]) {
        조건1, 3을 모두 만족하는 경우
    } else {
        조건1을 만족하지만 2, 3은 만족하지 않는 경우
    }
} else {
    조건 1을 만족하지 않으면 바로 이 부분이 실햄
}

반복문

특정 조건을 만족할 때 까지 또는 특정 횟수 동안 동일한 코드를 반복하여 실행합니다.
for, for each, while, do while


배운 점

제어문을 배우면서 Dead Code라는 용어를 알게 되었습니다. 불필요한 코드라는 의미로, 프로그램의 소스 코드에서 실행되지만 결과가 다른 계산에 전혀 사용될 수 없는 코드를 의미합니다. 따라서 이 코드의 실행은 계산 시간과 메모리의 낭비이기 때문에, 이클립스와 같은 툴에서 경고를 해주는 것을 확인할 수 있습니다.

위 코드처럼 명확한 Dead Code 일 수도 있지만, 복잡한 식임에도 불구하고 Dead Code가 발생할 수 있기 때문에, 로직을 작성할 때 꼼꼼하게 조건을 확인하며 코드를 작성해야겠다고 생각하였습니다.

반응형