티스토리 뷰
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 와 \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("프로그램 반복을 종료하였습니다.");
}//메인 끝
}//클래스 끝
'코딩 > JAVA' 카테고리의 다른 글
계산기 프로그램(while, Scanner, if-else if) (0) | 2023.10.16 |
---|---|
구구단, 숫자 문자 구분하여 출력하기 (0) | 2023.10.13 |
[1주차 3일] Chapter 4. 제어문-반복문(for) (0) | 2023.10.12 |
[1주차 3일] Chapter 4. 제어문 (0) | 2023.10.12 |
[1주차 2일] Chapter 4. 제어문 (0) | 2023.10.11 |
- Total
- Today
- Yesterday