java 이야기

[반복문] swap & 향상된 for문

SM.K 2021. 3. 1. 15:06

swap을 어디서 빼먹었을까..ㅋㅋ

 

swap의 설명은 간단하므로 여기에서 빠르게 하도록 하겠다.

 

swap은 뜻 그대로 바꿔치기 해주는 것이다. 

 

일단 예제를 살펴보자

 

int x = 1;

int y = 2;

 

라고 2개의 변수를 초기화와 동시에 선언하였는데, x와 y의 값을 바꿔치기 하고 싶을 때 swap을 사용할 수 있는 것이다.

일단, 2개 변수의 값을 빼면서 바뀌치기하는게 동시에 어려우므로 temp라는 임시 변수가 한개 필요하다!

 

int temp = x; //x변수값 1을 temp에 넣어주면 일단 x는 빈값이 된다.

x = y; //x에는 y값 2를 저장해주면 x는 채워지고 y가 빈값이 된다.

y = temp; //y에는 temp에 있는 1을 저장해주면 y도 채워진다.

System.out.println("x값: " + x + "y값: " + y);

 

자, 이제 향상된 for문을 살펴보자!

 

원래 배웠던 for문을 아래와 같이 작성해보았다.

 

<기본 for문>

int [] arr = {1.2.3.4.5};

for (int i = 0; i <= arr.lentgh; i++) {

    System.out.println(i);

}

 

<향상된 for문>

int [] arr = {1.2.3.4.5};

for (int i: arr) { //값을 받을 변수 : 배열이름

    System.out.println(i);

}

자 결과는 똑같다. 그렇다면 언제 각기 다른 for문을 사용할 수 있을까?

 

코드를 보면 기존 for문보다 향상된 for문이 훨씬 간편하게 쓸 수 있다는 걸 알 수가 있다.

향상된 for문에서는 값을 받을 변수를 넣을때 index와 배열의 길이를 신경쓰지 않을 수 있고, 형식에 따라 배열 이름만 기입하면 알아서 변수값에 들어가 나타내주기 때문이다.

 

향상된 for로 문자를 출력해보자

 

int [] arr2 = {"월", "화", "수", "목", "금", "토", "일"};

for(String s : arr2) { //문자열을 받는 String변수 사용

    System.out.print(s); 

}

배열 arr3의 숫자들의 합과 평균을 구해보자!

 

int [] arr3 = {40, 20, 50, 33, 60};

int sum = 0; //합계변수

for(int i : arr3) {

    sum+=i; //합계

}

    System.out.println("합계: " + sum);

    System.out.printf("평균: ", sum /arr3.length);

 

다음은 반복문을 제어하는 break;와 continue;를 배워보도록 하자!