3단원

ChoRong0824·2022년 9월 6일
2

Java

목록 보기
2/31
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개의 댓글