자바 공부중. . .(3) (논리 연산자, 반복문, 배열)

Reobivy·2023년 5월 24일
0

슬슬 뭔가를 만들 수 있을 것 같은 기분이 든다!


논리 연산자

&&

좌항과 우항이 참(true)일 때 참이 된다.
package org.opentutorials.javatutorials.conditionaloperator;
public class LoginDemo3 {
    public static void main(String[] args) {
        String id = args[0];
        String password = args[1];
        if (id.equals("egoing") && password.equals("111111")) {
            System.out.println("right");
        } else {
            System.out.println("wrong");
        }
    }
}
이전 예제인 아이디 비밀번호 확인 프로그램을 &&를 이용해 만든 모습.

||

좌우항 중 하나라도 true일 때 true가 된다.

!

부정의 의미로, Boolean의 값을 역전시키는 역할을 한다. true에 !를 붙으면 false가 되고 false에 !을 붙이면 true가 된다.
package org.opentutorials.javatutorials.conditionaloperator;
public class NotDemo {
    public static void main(String[] args) {
        if (!true) {
            System.out.println(1);
        }
        if (!false) {
            System.out.println(2);
        }
    }
}
즉, 이 예시 코드는 2를 출력한다.

반복문

while

while문의 형식은 다음과 같다.
while(조건){
    반복 실행 영역
}
괄호 안의 조건이 참이면 중괄호 내의 코드를 반복적으로 실행한다.

for

for은 반복문에서 자주 쓰이는 조건을 세분화해 정리해 놓은 것이다.
for(초기화; 종료조건; 반복실행){
    반복적으로 실행될 구문
}
package org.opentutorials.javatutorials.loop;
public class ForDemo {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println("Coding Everybody " + i);
        }
    }
}
예시 코드.
for문의 괄호 안에는 반복의 종료 조건이 들어온다. 종료 조건은 크게 3개의 부품으로 구성되는데 아래와 같다.
  • 초기화 : 반복문이 실행될 때 1회 실행된다.
  • 종료조건 : 초기화가 실행된 후에 종료조건이 실행된다. 종료조건의 값이 false일 때까지 반복문의 중괄호 구간의 코드가 반복 실행된다.
  • 중괄호 구간의 실행이 끝나면 반복 실행이 실행된다. 일반적으로 이 곳에 i++와 같이 변수를 증가시키는 로직이 위치하고, 이것이 실행된 후에 종료조건이 실행된다. 종료조건이 false가 될 때까지 이 과정이 반복된다.

break

반복작업을 중단할 때 사용한다.

continue

실행을 즉시 중단하면서 반복은 지속되게 할 때 사용한다.
public class ContinueDemo {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            if (i == 5)
                continue;
            System.out.println("Coding Everybody " + i);
        }
    }
}
예시 코드의 결과를 보면 숫자 5가 나타나지 않는다. i의 값이 5일 때 코드 실행을 중단했기 때문이다. 하지만, 반복문은 멈추지 않는다.

반복문의 중첩

package org.opentutorials.javatutorials.loop;
public class LoopDepthDemo {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                System.out.println(i + "" + j);
            }
        }
    }
}
반복문의 중첩을 이용해 00~99까지르 출력하는 코드 예제.

배열

배열의 개념과 생성

변수가 하나의 데이터를 저장한다면, 배열은 여러 개의 데이터를 저장하는 데이터 타입이다.
배열을 선언할 때에는 데이터 타입 뒤에 []를 붙여야 한다. 배열에 소속될 데이터는 중괄호 안에 위치하며, 각각의 데이터는 쉼표로 구분된다.
package org.opentutorials.javatutorials.array;
public class GetDemo {
    public static void main(String[] args) {
        String[] classGroup = { "최진혁", "최유빈", "한이람", "이고잉" };
        System.out.println(classGroup[0]);
        System.out.println(classGroup[1]);
        System.out.println(classGroup[2]);
        System.out.println(classGroup[3]);
    }
}
결과
최진혁
최유빈
한이람
이고잉
classGroup[0] 처럼 배열이 담겨있는 변수의 이름 뒤에 대괄호를 붙이고 그 안에 0부터 시작하는 숫자를 입력하면 순차적으로 값을 가져올 수 있다.

배열을 선언하는 다른 방법

package org.opentutorials.javatutorials.array;
public class LengthDemo {
    public static void main(String[] args) {
        String[] classGroup = new String[4];
        classGroup[0] = "최진혁";
        System.out.println(classGroup.length);
        classGroup[1] = "최유빈";
        System.out.println(classGroup.length);
        classGroup[2] = "한이람";
        System.out.println(classGroup.length);
        classGroup[3] = "이고잉";
        System.out.println(classGroup.length);
    }
}
결과
4
4
4
4
.length는 실제 데이터의 숫자가 아니라 배열을 처음 생성할 때에 지정한 배열의 크기를 의미한다.

배열 개념 정리

위와 같이 배열에 담긴 각각의 데이터를 원소(element)라고 한다. classGroup[1]은 최유빈이다. 여기서 숫자 1은 원소 최유빈을 식별하는 식별자이다. 이러한 식별자를 인덱스라고 부른다.

배열의 사용

package org.opentutorials.javatutorials.array;
public class ArrayLoopDemo {
    public static void main(String[] args) {
        String[] members = { "최진혁", "최유빈", "한이람" };
        for (int i = 0; i < members.length; i++) {
            String member = members[i];
            System.out.println(member + "이 상담을 받았습니다");
        }
    }
}
반복문과 배열을 결합한 프로그램의 예시이다.

for-each

package org.opentutorials.javatutorials.array;
public class ForeachDemo {
    public static void main(String[] args) {
        String[] members = { "최진혁", "최유빈", "한이람" };
        for (String e : members) {
            System.out.println(e + "이 상담을 받았습니다");
        }
    }
}
이 코드는 위의 코드와 완벽히 동일하게 동작한다. 하지만 문법적으로 더욱 간결해졌다.
for(String e : members)
위의 구문은 배열 members의 값을 변수 e에 담아서 중괄호 구간 안으로 전달해준다.

배열의 흔한 오류 및 한계

배열의 가장 흔한 오류는 배열의 범위를 초과하는 원소를 명시하는 경우이다. 인덱스의 개수를 주의하자.
배열은 초기화할 때에 크기가 정해져 이를 초과하는 값을 넣을 수 없다. 추후 컬렉션이라는 기능을 이용하면 유연한 배열의 사용이 가능해진다. 이 기능은 객체지향의 개념을 이해할 때 온전히 이해할 수 있을 것이다.
이 포스트는 <생활코딩>의 자바 강의를 요약한 포스트입니다.

0개의 댓글