티스토리 뷰

Chapter 4. 제어문-반복문

 

▶ 학습 목표

:for, while, do~while, break, continue가 무엇인지 알고 사용할 수 있다.

 

 

 

- for문

: 몇번 반복할때 사용한다. 횟수를 기반으로 반복.

for문을 사용하여 코드구문을 줄일 수 있다.

 

for(초기화;조건식;증감식)
{
	System.out.println("조건식이 참일 때 실행되는 부분");
}

 

초기화 : 사용할 변수를 초기화한다.

조건식 : 반복을 계속하기 위한 조건을 정한다. 조건식의 값이 true면 반복 false면 실행을 중단한다.

증감식 : 변수의 값을 증가 혹은 감소한다.

실행부분 : 조건식이 참일 때 실행하는 부분

 

 

ex)

package chapter4;

public class exam4_8 
{

	public static void main(String[] args) 
    {
		int sum=0;
		for(int i=0; i<=10; i++)
		{
			System.out.printf("i=%d /n sum=%d \n", i,sum+=i);
		}

	}

}

 

i=0 sum=0 
i=1 sum=1 
i=2 sum=3 
i=3 sum=6 
i=4 sum=10 
i=5 sum=15 
i=6 sum=21 
i=7 sum=28 
i=8 sum=36 
i=9 sum=45 
i=10 sum=55

 

 

* print

print 와 \n , /n , ln ,%n 을 같이 쓰면 줄바꿈을 일어나 개행한다.

printf 의 f는 format으로 특정형태로 출력하고자할때 사용한다. 줄 바꿈 X

 

(/n은 윈도우에서 사용가능함. 사용환경에 따라 사용안된다.)

(printf(" 1 " , 2 ); 에서 1번 자리에는 형태, 2번자리에는 변수가 입력된다)

 

* %d : 정수

* %f : 실수

* %s : 문자

 

 

 

 

 

- while 문

: "조건"에 기반할 때 사용한다. for을 대체할 수 있다. ( 조건, 횟수 둘 다 가능함 (실용적))

 

while(조건식)
{
	//실행되는 부분
}

while은 조건식 생략이 불가능하다. 조건식이 true면 계속해서 반복됨(무한루프)

 

 

ex)

package chapter4;

import java.util.Scanner;

public class exam4_9 
{

	public static void main(String[] args) 
	{
		Scanner sc;
		sc = new Scanner(System.in);
		
		String answer="Y";
		int count=0;
		
		
		while(answer.equals("Y"))
		{
			System.out.println("음악을 재생하시겠습니까?(Y/N)");
			answer=sc.nextLine();
			
			
			if(answer.equals("Y")) 
			{
				count++;
				System.out.printf("음악을 %d번 재생했습니다.", count);
				
			}
			
		}
		
		
		System.out.println("재생 종료");

	}

}

 

음악을 재생하시겠습니까?(Y/N)
Y
음악을 1번 재생했습니다.음악을 재생하시겠습니까?(Y/N)
Y
음악을 2번 재생했습니다.음악을 재생하시겠습니까?(Y/N)
N
재생 종료

 

 

 

- do~while 문

: while문의 변형된 형태로 최소한 한번은 실행한다.

참/거짓에 상관없이 do문을 먼저 실행한 후 while문의 조건식이 참인지 거짓인지 검사하고 반복을 결정한다.

 

do
{
	//실행되는 부분
} while(조건식);

 

 

 

ex) 위의 while문 예시에서 do~while로 변형한 형태의 코드

package chapter4;

import java.util.Scanner;

public class exam4_10 
{

	public static void main(String[] args) 
	{
		
		Scanner sc;
		sc=new Scanner(System.in);
		int count=0;
		String answer;
		
		do 
		{
			
			System.out.println("음악을 재생하시겠습니까?(Y/N)");
			answer=sc.nextLine();
			
			if(answer.equals("Y")) 
			{
				System.out.printf("음악을 %d번 재생했습니다.", ++count);
			}
				
			
		} while(answer.equals("Y"));

		System.out.println("재생 종료"); //main 안으로 넣어야 함.

	}
	

}

 

while문 예시를 do~while문의 형태로 변형한 것이다.

while의 위치를 주의해야한다.

do에는 조건문이 들어가지 않는것도 주의해야한다.

 

*while은 조건문 내용 뒤로 가야한다.(기존 while과 실행 순서 다름)

*함수는 무조건 main 안에 들어가야 실행된다.

 

 

 

 

 

- break 문

: break는 반복을 멈추게 한다.

반복문이 실행되고 있다가 break를 만나면 실행되고 있던 코드를 종료한다.

 

 

- continue 문

: continue는 반복을 뛰어 넘고 반복을 실행한다.

반복문이 실행되고 있다가 continue를 만나면 실행되던 코드는 중단되고 다시 그 반복문의 제일 처음으로 이동하여 실행한다.

 

 

ex)

 

package chapter3;

import java.util.Scanner;

public class exam3_1 
{   
   public static void main(String[] args) 
   {
      //변수 선언 및 초기화
      int money =10000;
      Scanner sc = new Scanner(System.in);
      int spend;
      //제어부
      System.out.printf("현재 가진 금액은 %d원 입니다%n",money);
      
      while(true) 
      {
         System.out.println("얼마를 사용하겠습니까?");
         spend = sc.nextInt();
         
         boolean test = !(0<= spend&& spend<=money);
         System.out.println("입력값은"+test+"입니다");
         
         //제어문 : 패스할까말까 : spend변수 값을 검증
         if(!(0<= spend&& spend<=money)) 
         {
            System.out.println("잘못입력했어요 다시입력해주세요!");
            continue;
         }
         
         //결과값 출력
         money = money - spend;
         System.out.printf("남은 금액은 %d 입니다%n",money);
         
         if(money==0) 
         {
            System.out.println("잔액이 부족합니다");
            break;
         }
      }//와일끝
      System.out.println("프로그램 반복을 종료하였습니다.");
   }//메인끝
}//클래스 끝

 

 

 

 

ex) 내가 만든 코드

package chapter4;

import java.util.Scanner;

public class exam4_11 
{

	public static void main(String[] args) 
	{
		// 변수 선언 및 초기화
		int money = 10000;
		Scanner sc = new Scanner(System.in);
		int spend;
       	 int a;
		
		//제어부
		System.out.printf("현재 가진 금액은 %d 원 입니다.\n", money);
		
		while(true) 
		{
			System.out.println("얼마를 사용하겠습니까?");
			spend = sc.nextInt();
			
			//제어문 : 패스 할까말까(=spend변수 입력 값을 검증)
			if(!(0<=spend && spend<=money)) 
			{
				System.out.println("잘못입력했어요 다시 입력해주세요.");
				continue;
			}
			
			//결과값 출력
			a=money-spend;
			System.out.printf("남은 금액은 %d 원 입니다.\n", a);
			
			if(money==0) 
			{
				System.out.println("잔액이 부족합니다.");
				break;
			}
		} //while끝
		
		System.out.println("프로그램 반복을 종료하였습니다.");
		

	}//메인 끝

}//클래스 끝

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday