JAVA - loop
◆반복문(loop)
-반복문은 for과 while이 있다.
-for문은 몇 번 반복해야 되는 지 알면 사용하고 while문은 몇번 회전을 시켜야하는지 모를때 사용한다.
◆for문
-for문은 실행구문을 반복적으로 수행하는 반복 제어문으로 일반적으로 반복횟수가 정해질 때 주로 사용한다.
/*형식
* for(초기식; 조건식; 증감식){
* 실행구문;
* }
*/
//0부터 1까지 출력
for (int i = 0; i <= 10; i++) {
System.out.println(i);
}
//0부터 10까지 짝수만 출력
for (int i = 0; i <= 10; i += 2)
System.out.println(i);
}
//0부터 10까지 역순으로 짝수만 출력
for (int i =10; i >= 0; i -= 2){
System.out.println(i);
}
-0부터 10까지 짝수만 출력하기 위해서 반복할때마다 i의값 2을 더해주는 증감식 표현을 사용한다. 이때 i += 2는 i = i +2 와 같다.
-0부터 10까지 역순으로 출력을 하려면 10부터 출력을 해야하기 때문에 초기값 변수 값에 10을 넣는다. 조건식에는 i가 0보다 크다는 조건식을 넣어서 i가 0까지 true값이 나오도록 설정한다. 증감식에는 짝수가 나와야 하기 때문에 2씩 증가하는 i +=2 의 값을 넣으면 된다.
## 1)변수의 선언 위치
//초기식 외부 선언
int a;
for(a = 0; a <= 10; a++){
System.out.println(a); // 0~10까지 출력
}
System.out.println(a); // 11출력
//초기식 내부 선언
for(a = 0; a<=10; a++){
System.out.println(a); // 오류
}
초기식에 포함된 변수는 for문의 내외부에서 선언할 수 있다. 외부에서 변수 a를 선언하고 첫번째 for문이 종료되면 증감식으로 인해 a는 11에서 값이 사라지지 않고 남아있다. 그래서 초기식을 내부에서 선언하는 방식이 많이 사용된다.
2) 전위 증감식 & 후위 증감식 연산자
public class Main{
public static void main(String[] args) {
int a = 2;
int b = 2;
System.out.println(a * b++); //후위 증감 연산자 결과 : 4
System.out.println(a * ++b); //전위 증감 연산자 결과 : 6
}
}
후휘 증감 연산자를 사용하는 경우 변수의 값이 증가되기 전에 2*2 로 연산을 하고 결과값이 출력된 후에 b의 값이 3으로 증가하게된다.
전위 증감 연산자를 사용하는 경우 연산을 하기전에 변수 b의 값이 3으로 증가한 후에 2 *3으로 연산이 된다.
◆while문
-조건식이 true이면 문장이 실행되고, false이면 종료된다. for문과는 다르게 초기값과 증감식을 적는 곳이 명시되어 있지 않다.
/*형식
* while (조건식) {
* 조건식이 참일때 처리되는 문장;
* 증감식;
* }
*/
public class Main {
public static void main(String[] args) {
int i=1; // 초기값 설정
while (i<=10) { //조건식
System.out.println(i);
i++; // 증감식
}
}
}
먼저 변수을 선언하고 초기값을 설정해 준 다음에, while 반복문을 사용하여 i가 10까지 출력되도록 조건식을 작성하였다. 결과는 1 부터 10까지 출력된다.
◆do ~ while문
-do~ while문은 조건식이 true이든 false이든 상관없이 중괄호({ }) 안의 문장을 무조건 한번 실행시킨 후 조건을 검사하여 반복을 결정한다.
/*형식
* do {
* 조건식이 참일때 실행문;
* 증감식;
* }while(조건식);
*/
public class Main {
public static void main(String[] args) {
int i = 0; // 초기값 설정
do {
System.out.println(i);
i++; // 증감식
} while (i < 0); // 조건식
}
}
먼저, 변수 i를 선언하고 초기값을 설정해 준 다음에, 실행문을 한번 실행한 후 다음 조건식( i가 0보다 작으면)을 검사해서 조건식이 true이면 계속 반복하고 flase이면 do ~ while문을 빠져나오는 방법이다. 결과는 0 이다.
◆foreach
-foreach는 일반적으로 배열이나 Collection클래스를 반복하는데 사용한다.
-반복문 내에 카운터 변수를 선언하고 콜론(:) 다음에 배열이름을 순서대로 선언한다.
/*형식
* foreach(카운터 변수 : 배열이름){
* 반복실행할 실행문;
* }
*/
//for문을 이용하여 배열을 탐색할 때
int [] arr = {1,2,3};
for(i = 0; i < 3; i++){
System.out.println(arr[i]);
}
//foreach문을 이용하여 배열을 탐색할 때
int [] arr = {1,2,3};
foreach(int i : arr){
System.out.println(arr[i]);
}
foreach문을 쓰면 배열의 리스트의 크기를 일일이 구할 필요가 없지만…. 배열을 역순으로 출력할 수 없다.
◆제워 키워드
1)break
-반복문에서 특정 조건을 만족할 때 반복문을 탈출하는데 사용한다.
-반복문이 실행되는 동안에 break를 만나면 가장 가까운 중괄호를 탈출한다.
public class Main{
public static void main(String [] args){
for(int i = 0; i <= 5; i++){
if(i == 2){
break;
}
System.out.println(i);
}
}
}
for문을 사용하여 0부터 10까지 출력이 가능한데, for문안에 조건문을 활용하여 i가 2값이 들어왔을 때 for문을 탈출하는 방법이다.
2)continue
-continue는 현재 단계를 중단하고 다음 증감식을 수행하거나 조건식을 수행한다.
public class Main{
public static void main(String[] args){
for(int i = 0; i <= 5; i++){
if(i == 2){
continue;
}
System.out.println(i);
}
}
}
for문을 사용하여 0부터 10까지 출력이 가능한데, for문 안에 조건문을 활용하여 i 가 5값이 들어왔을 때 중단하고 이어서 for문을 실행한다. 결과는 1, 3, 4, 5이다.
댓글남기기