[반복문] swap & 향상된 for문
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;를 배워보도록 하자!