본문 바로가기

Back-End/JAVA

자바] 조건문-switch, 반복문, 배열, 향상된 for문

조건문 - switch 문

switch 문은 case와 default로 구성되고, 각 case를 지정해준다.

if문과 switch문의 차이점

switch문이 속도가 더 빠름 (장점)

 - if 문과 switch 문의 방식으로 목적지(부산)를 가려할 때 :

if 문은 가려는 곳을 순차적으로 물어보며 목적지로 향함. 

가는 곳이 .. 천안인가? -> 대전인가> -> 대구인가> -> 부산인가?

switch 문은 가려는 곳으로 직진.

가는 곳이 부산이다.

 

단점 ) switch 문은 각각의 case를 메모리에 담고 있기 때문에 if 문보다 메모리를 더 차지한다.

따라서, switch 문은 필수로 수행해야할 때, 조건이 단순할 경우에 사용하는 것이 좋다.

- AND 조건이나 OR 조건은 switch 문에서 사용할 수 없다.

- jdk 1.7 이전 버전에서는 switch 문의 case에 문자를 사용할 수 없다.

 

 

반복문(Loop Statement)

- 반복문은 단순한 일을 반복할 때 사용한다.

- 반복은 "자동화"를 위해 가장 중요한 조건이다.

- 반복 역시 "특정한 조건" 이 만족되어야 반복된다.

- 반복문의 종류 : for 문 , while 문

// 언제 유리한지, 특징이 뭔지, 언제 사용되는지 알기!

//** 반복문 작성하기 전에 단순하게 작성해보고 규칙을 찾아서 작성하기 시작하면 쉬움!!!****

 

for 문

- 종료 횟수가 정해진 경우 유용하다.

- 예시 ) 물 10잔 떠다 줘.

for(초기값; 조건; 증감) {

    해야할 일;

}

// 커피 10잔을 탄다. 물 한 잔 당 2개의 커피 믹스를 넣는다.

for (int i = 1; i <= 10; i++) {

    물 떠오기;

    for ( int j =1; j <= 2; j++) {

        커피 믹스 넣기;

    }

}

 

while 문

- 종료 횟수가 정해지지 않은 경우 유용하다.

- 예시 ) 내가 그만이라고 할 때 까지 A4용지 좀 리필해줘.

while(조건) {

    해야할 일;

}

 

do while 문

- 일단 저질러 놓고 조건을 체크한다.

- 즉, do 의 내용을 실행 후 while 의 지속 여부를 체크

do {

    해야할 일;

} while(조건);

	public static void main(String[] args) {
		
		//while은 조건을 보고 실행 여부를 판단
		int i = 11;
		
		while (i<10) {
			i++;
		}
		System.out.println("while cnt:"+i);
		
		//do while은 일단 실행하고 다음 실행 여부를 판단한다.
		i = 11;
		do {
			i++;
		} while (i<10);
		System.out.println("do while cnt:"+i);
	}
	// while과 do while 은 조건이 문제가 없을 경우 동일한 결과를 낸다.
	// 하지만 초기 조건이 맞지 않을 경우 차이를 보인다. (do는 초기 조건이 맞지 않아도 일단 실행하니까.)

 

빠져나가거나(break) 무시하기(continue)

- 프로그래밍에서 문장들은 code block {} 안에서 실행된다. 

1. break : 특별한 경우 영역 안의 내용을 모두 실행하지 않고 빠져 나오는 방법

아예 code block을 나가버리기 때문에 더 이상 실행되지 않는다.

	public static void main(String[] args) {
		// break : 해당 구문을 탈출 한다.
		for (int i = 0; i < 10; i++) {
			if (i==3) {
				break; //i가 3일 때 탈출해 버렸으므로 3은 출력되지 않는다.
			}
			System.out.println(i);
		}
		
		System.out.println();
        /* 결과값
        * 0
        * 1
        * 2
        * 4
        * 5
        * 6
        * 7
        * 8
        * 9
        */
		
		// continue : 내 아래 구문을 무시해라.
		for (int i = 0; i < 10; i++) {
			if (i==3) {
				continue; //i가 3일 때 아래 구문을 무시하고 넘어갔으므로 3이 출력되지 않는다.
			}
			System.out.println(i);
            
        /* 결과값
        * 0
        * 1
        * 2
        * 4
        * 5
        * 7
        * 8
        */
		}

 

2. continue : 특별한 경우 무시하고 지나치는 방법

code block을 나가는 것이 아닌 특정 상황만을 무시하고 위로 다시 올라가는 것이므로 계속 실행된다.

 

 

배열(Array)

  • 변수는 물이나 각종 음료를 담고 있는 잔과 같다고 했다.
  • 배열은 변수를 일렬로 세워놓고 각 상자에 번호를 붙여 놓은 형태. 즉, 여러 개의 변수를 하나에 담는 기능.
  • 변수가 맥주가 들어있는 맥주잔이라면 배열은 여러 맥주를 세워놓은 맥주 샘플러.
  • 변수 100개 vs 배열 하나
  •   : 변수는 100개 모두 다른 이름을 가지고 있어야 한다.
  •   : 배열은 하나의 이름만을 가지고 있으면 되며, 배열의 요소들은 각자 배열의 방 번호를 부르면 된다.
  •    -> 배열의 각 요소들은 기준 잔에서 얼마나 떨어져 있는지가 자동으로 이름이 된다.
  • 배열의 첫번째 값은 0번째 ==> 3번째 값은 기준 잔인 0번째 잔으로부터 2칸 떨어져 있으므로 배열의 2번째
  • 배열 a[0] a[1] a[2] a[3] ...
  • 0부터 시작하는 것은 자기 자신이 기준이 되기 때문.
  • 배열은 몇 개의 데이터가 들어가야 할지 미리 정해줘야 한다.

다차원 배열 

  • 배열은 1차원 배열, 2차원 배열, 3차원 배열 등 다차원 배열을 활용할 수 있다.
  • 다차원 배열의 개념은 아파트와 방의 개념으로 생각해 볼 수 있다.
    <2차원> Royal 아파트 1층 2호               royal[1][2]
    <3차원> Royal 아파트 1층 2호 1번 방      royal[1][2][1]

※      String str = null;   // 진짜 아무 것도 없는.. 진공 상태의 상자

        String str2 ="";   //빈 값이라는 정보를 가지고 있는.. 공기는 있는 상태의 상자

 

향상된 for문

기존 방식의 for문

int[] scores = {95,75,84,35};

for(int i=0; i<score.length; i++) {
	System.out.println(score[i]);
}

향상된 for문 = i를 통한 순서 정보가 필요하지 않을 때 사용.

int[] scores = {95,75,84,35};

for(int s:score) {
	System.out.println(s);
}
  • 배열(score)에 있는 값을 하나씩 뽑아서 앞의 변수(s)에 전달
  • 장점 : 간편하다
  • 단점 : 몇 번째 값인지 순서를 알기 어럽다.
  • 따라서 i를 통한 순서 정보가 필요하지 않을 때 사용한다.
  • 만일 향상된 for 문을 꼭 사용하면서 순서도 알고 싶다면 아래와 같이 사용한다.
		int cnt = 0;  //향상된 for문은 순서를 알 수 없기 때문에 필요하다면 변수를 따로 정의를 내려줘야한다.
		for (int score : scores) {
			System.out.println(cnt+" : "+score);
			cnt++;

 

'Back-End > JAVA' 카테고리의 다른 글

JAVA, SPRING 기술 면접 정리  (0) 2022.09.06
[자바] 문자열과 제너릭 (String & Generic)  (0) 2022.04.20
STS /이클립스] 사용법 (계속 추가)  (0) 2022.04.08
[자바] JAVA, STS 설치  (0) 2022.04.07
[자바] 자바 기초 개념  (0) 2022.04.07