3단원

ChoRong0824·2022년 9월 6일
2

Java

목록 보기
2/40
post-thumbnail

반복문

for(초기문; 조건식; 반복 후 작업){
..작업문..
}
  • 조건식에는 논리형 변수나 논리 연산을 사용한다. 조건식의 결과가 true이면 반복이 계속되며 false이면 for 문을 벗어난다.

예제 3-1

public static void main(String[]args){
	int sum=0;
    
    for(int i=0;i<11;i++){
    sum += i;
    System.out.print(i);
    if(i<10)
    	System.out.print("+");
    else{
    	System.out.print("=");
        System.out.println(sum);

While 문

while (조건식){
	..작업문..
}
  • while 문은 반복 횟수를 알 수 없는 경우에 적합하다.

예제 3-2

package experience;
import java.util.Scanner;

public class Avg {
    public Avg(){
        int count =0;
        int sum =0;
        
        Scanner sc = new Scanner(System.in);
        System.out.println("정수를 입력하고 마지막에 -1을 입력하세요.");

        int num = sc.nextInt();
        while (num != -1) {
            sum += num;
            count ++;
            num = sc.nextInt();
        }
        System.out.println("정수의 개수는"+count+"개이며, 평균은 "+((double)sum/count)+"입니다.");
        sc.close();
    }
    public static void main(String[] args) {
        new Avg();
    }
}

do-while문

 do {
	..작업문..
    }while(조건식);

*중첩 반복문을 통해 다중 중첩이 가능하지만, 2중~3중 내외로 하는 것이 좋다.

예제 3-4

package experience;
import java.util.Scanner;
public class Avg {
    public Avg(){
        for (int i = 1; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                System.out.print(i+"x"+j+"="+(i*j)+'\t');
            } System.out.println(" ");
        }
    }
    public static void main(String[] args) {
        new Avg();
    }
}

continue 문

  • continue 문은 반복문을 빠져나가지 않으면서 즉시 다음 반복으로 넘어가고자 할 때 사용 된다.
  • for 문에서 contine 문을 만나면 '반복 후 작업' 으로 분기하고, While, do-while 문에서는 조건식을 검사하는 과정으로 분기한다.

예제 3-5

package experience;
import java.util.Scanner;
public class Avg {
    public Avg(){
        Scanner sc = new Scanner(System.in);
        System.out.println("정수를 5개 입력하세요.");
        int sum =0;
        int[] arr = new int[6];
        
        for (int i = 1; i < 6; i++) {
            arr[i] = sc.nextInt();
            if(arr[i]>0) {
                sum += arr[i];
            }
        }
        System.out.println("양수의 합은"+sum);
        sc.close();
    }
    public static void main(String[] args) {
        new Avg();
    }
}

이렇게 생각해보았으나, 예제의 취지는 continue를 사용해서 해결하는 것임으로 다시 코딩

public avg(){
	Scanner sc = new Scanner(System.in);
    System.out.println("정수를 5개 입력하세요.");
    int sum = 0;
    for(int i=0; i<5; i++){
    	int n = sc.nextInt();
        if(n <=0)
        	continue; //여기서 continue를 사용해서 음수일 경우 탈출하게 함.
        else
        	sum += n;
	}
    System.out.println("양수의 합은" +sum);
    sc.close();
    }
}

이렇게 해결해주면 된다. 여기서 포인트는 continue의 사용법이다.

break 문

  • break 문은 하나의 반복문을 즉시 벗어날 때 사용한다.
    break 문은 하나의 반복문만 벗어나기 때문에, 중첩 반복의 경우 안쪽 반복문에서 break문이 실행되면,안쪽 반복문만 벗어나며 바깥 쪽 반복문 내에서 실행이 유지된다.

예제 3-6

package experience;
import java.util.Scanner;
public class Avg {
    public Avg(){
        Scanner sc = new Scanner(System.in);
        System.out.println("exit을 입력하면 종료합니다.");

        while (true) {  // 일단 무조건 굴러가게 짜준 다음에 이벤트 발생하면 나가게끔 틀 잡음
            System.out.print(">>");  
            String text = sc.nextLine();
            if (text.equals("exit")) {
                break;  // While 문 탈출.
            }
            sc.close();
        }
        System.out.println("종료하겠습니다.");
    }
    public static void main(String[] args) {
        new Avg();
    }
}

TIP,
(while 문을 만들다보면 벗어나는 조건이 까다로운 경우도 많기 떄문에 조건식을 작성하느라 애를 먹는다. while 문에서 빠져나오는 코드를 작성하는 노하우)

입력된 수 N이 5의 배수이거나 음수인 경우 while 문을 벗어난다고 하자.

while 문에 조건식을 이용하는 경우
while(N%5 ==0 || (n<0){
...
}

while 문의 조건식은 true로 하고 If 문으로 벗어나는 조건을 만드는 경우

while(true){
if(n%5 ==) break;
if(n<0) break;
...
}

TIP, 이와 같이 조건식을 이용할 때 if문을 활용 하는 방법이다.

profile
정진, "어제보다 더 나은 오늘이 되자"

0개의 댓글