while문

 

간단한 입 출금 자바 프로그램 만들기

 

무한반복 while문과 switch문을 사용한다.

 

boolean 타입의 true 변수를 만들어준다.

boolean run = true;

 

 

int 타입의 balance 변수를 초기화 선언해주고, 사용자에게 입력받을 Scanner 클래스를 호출하고 import를 해준다.

int balance = 0;

Scanner scanner = new Scanner(System.in);

 

while문에 위에 초기화해준 run(true)변수를 넣어주어 무한 루프를 만들고,

콘솔 창에 출력 될 간단한 선택지를 만든다.

1을 입력하면 예금이 될 수 있게 2는 출금, 3은 잔고, 4를 입력하면 while무한 루프를 빠져나와 프로그램이 종료 되게 한다.

 

 

switch문의 변수값에 입력된 값이 들어가게 해준다.

int menu = scanner.nextInt();

switch (menu) {

 

 

  • switch에 변수가 1이 입력됐을 경우. (case 1 - 예금)

System.out.print("예금액> "); //사용자가 예금을 하면 balance+예금=더한값

int money = scanner.nextInt();

balance += money;

System.out.println("잔고 :"+ balance);

break; // break문은 switch문을 빠져나가게함.

int 타입의 money에 예금액 값을 받고,

balance에 받은 값을 더하고 balance에 대입해준다. ( += 복합 할당 연산자)

(balance = balance + money)

 

 

  • switch에 변수가 2가 입력됐을 경우. (case 2 - 출금)

System.out.print("출금액> ");

money = scanner.nextInt(); 

balance -= money;

(같은 지역에서 이미 int타입으로 money를 초기화 해주었기 때문에 변수이름으로만 불러와도 된다.)

int 타입의 money에 출금액 값을 받고,

balance에 받은 값을 빼고 balance에 대입해준다. (-= 복합 할당 연산자)

 

여기에 만약 출금할때 잔고가 부족하다면~ 의 조건문을 넣어준다.

if (balance >= 0) {

System.out.println("잔고 : " + balance);

} else if (balance < 0) {

System.out.println("잔고가 부족합니다");

}

break;

만약 balance가 0보다 크거나 같으면 (잔고 있음)

출금이 되어서 잔고를 보여주고,

 

balance가 0보다 작으면 (잔고 없음)

잔고가 부족하다고 프린트문을 보여준다.

 

 

  • switch에 변수가 3이 입력됐을 경우. (case 3 - 잔고확인)

System.out.println("잔고 : " + balance);

break;

 

 

  • switch에 변수가 4가 입력됐을 경우. (case 4 - 종료)

run = false; 

break;

while문의 변수 run(true : 무한 반복)을 true에서 false로 재선언 해주어 무한 반복을 멈춘다.

 

 

  • switch에 변수가 1, 2, 3, 4 이외에 다른 정수가 입력됐을 경우. (default)

System.out.println("메뉴를 잘못 입력했습니다. 다시 선택하세요.");

1, 2, 3, 4 이외에 다른 정수가 입력됐을 경우 print문이 나오고 다시 while문으로 올라간다.

 


 

실행 결과

 

 

for문과 break를 사용해서 구구단 만들기

2단은 2x2까지 3단은 3x3까지 4단은 4x4까지 ... 9단은 9x9까지만 구구단 출력

 

(바깥쪽에 있는 dan for문)

int 타입 dan은 2부터 시작. dan이 10보다 작을 때 까지 dan을 1씩 증가 반복문을 실행한다.

"--- 2단 ---" 출력 후 안쪽에 있는 n for문으로 이동한다.

 

(안쪽에 있는 n for문)

int타입 n은 1로 시작. n이 10보다 작을 때 까지 n을 1씩 증가 반복문을 실행한다.

만약 dan과 n의 값이 같지 않을 경우 "2 x 1 = 2" 을 출력한다.

 

dan과 n의 값이 같을 경우 반복을 break ( if문을 빠져나옴)

다시 바깥쪽의 for문으로 올라가서 dan을 1증가시킨다.

 

dan이 10보다 작을 때까지(9) 위와 같이 반복문을 실행한다.

 

 

break를 사용하지 않은 코드

바깥쪽 dan for문은 위와 동일하다.

(안쪽에 있는 n for문)

n은 1로 시작하고, n이 dan보다 작거나 같을 때 까지 n을 1씩 증가 반복문을 실행한다.

 


while 문을 사용해서 구구단 만들기

2단은 2x2까지 3단은 3x3까지 4단은 4x4까지 ... 9단은 9x9까지만 구구단 출력

 

먼저 변수를 선언해서 변수값을 초기화해준다.

 

(바깥쪽에 있는 a while문)

a가 10보다 작을 때 동안만 (까지만) 반복문을 실행한다.

"--- 2단 ---" 출력 후 안쪽에 있는 b while문으로 이동한다..

 

(안쪽에 있는 b while문)

b가 10보다 작을 때 동안만(까지만) 반복문을 실행한다.

a와 b의 값이 같지 않을 경우 if문은 break하지 않고 "2 x 1 = 2" 을 출력한다.

 

만약 a가 b와 값이 같을 경우 출력을 하지 않고 break ( if문을 빠져나옴) 한 후 a를 1증가시킨다.

바깥쪽의 while문으로 이동 후 위와 동일하게 반복문을 실행한다.

 

 출력 후 b의 값을 1증가시킨다. 다시 b while문으로 이동한다.

 

 

a가 10보다 작을 때까지(9) 위와 같이 반복문을 실행한다.

 

 

break를 사용하지 않은 코드

바깥쪽 a while문은 위와 동일하다.

 

(안쪽에 있는 b while문)

b가 a와 작거나 같을 때 동안만(까지만) 출력하고, b를 1씩 증가시킨다.

b가 a보다 크거나 같지 않으면 안쪽 b while문을 끝내고 나와서 a를 1증가시키고, 바깥쪽 a while문으로 이동한다.

 

a가 10보다 작을 때까지(9) 위와 같이 반복문을 실행한다.

 


실행 결과

.

.

.

 

실행 결과

 

이중 for문(반복문)을 사용해서 구구단만들기

 

(바깥쪽에 있는 dan for문)

int 타입의 dan 변수가 2 -> dan이 10보다 작을 때 까지 dan을 1씩 증가 반복문을 실행한다.

"--- 2단 ---" 출력 후 안쪽에 있는 n for문으로 이동한다.

 

(안쪽에 있는 n for문)

int 타입의 n 변수가 1 -> n이 9보다 작거나 같을 때 까지 n을 1씩 증가 반복문을 실행한다.

"2 x 1 = 2" 을 출력한다.

출력 후 n for문으로 올라가서 n이 9보다 작거나 같으면 다시 반복 / 작거나 같지 않으면 반복문을 빠져나온다.

빠져나온 후 다시 바깥쪽에 있는 dan for문으로 이동한다.

.

.

.

dan이 10보다 작을 때까지(9) 위와 같이 반복문을 실행한다.

 


이중 while문을 사용해서 구구단만들기

 

먼저 변수를 선언해서 변수값을 초기화해준다.

(바깥쪽에 있는 dan while문)

dan이 10보다 작을 때 동안만 (까지만) 반복문을 실행한다.

"--- 2단 ---" 출력 후 안쪽에 있는 n while문으로 이동한다..

 

(안쪽에 있는 n while문)

n이 10보다 작을 때 동안만(까지만) 반복문 실행한다.

"2 x 1 = 2" 을 출력한다.

출력 후 n while문으로 올라가서 n이 10보다 작으면 다시 반복 / 작지 않으면 반복문을 빠져나온다.

빠져나온 후 다시 바깥쪽에 있는 dan while문으로 이동한다.

.

.

.

dan이 10보다 작을 때까지(9) 위와 같이 반복문을 실행한다.

 


실행 결과

.

.

.

 

실행 결과

 

 

while 문

조건식이 true일 경우에 계속해서 주어진 명령문을 반복 실행한다.

비교, 논리 연산식을 조건식으로 주로 사용하고, 조건식이 false가 되면 반복을 멈추고 while문을 빠져나간다.(종료)

for문과 다르게 초기값과 증감식을 정의하는 것이 필수 조건이 아니다.

 

while(조건식) {

  실행문;

}

 

 

무한루프 while문

조건식에는 boolean 타입 변수 (true / false) 값을 산출하는 어떠한 연산식이든 올 수 있다.

조건식에 true를 사용하면 while문은 무한루프를 돌게 된다.

 

while(조건식) {  // true일 경우 실행

  실행문;

}

while문을 종료시키기 위해서는 변수의 값을 false로 만들거나, break문을 이용하는 방법이 있다.

 

 

do - while 문

while문과 do - while문의 차이점은 조건을 먼저 검사하는 지, 나중에 검사하는 지 일 뿐 동작 방식은 동일하다.

do {
   반복 실행할 문장;

} while (조건식)  // true일 경우 실행

 

 

for문

주어진 횟수만큼 실행문을 반복 실행할 때 적합한 반복 제어문

반복 횟수를 알고 있을 때 주로 사용한다.

 

for ( 초기화식;  조건식;  증감식 ) {

실행문;

}

 

중첩 for문

for문 안에 for문을 중첩하는 것을 말한다.

바깥쪽 for문이 한 번 실행할 때마다 중첩된 for문은 지정된 횟수만큼 반복해서 돌다가 다시 바깥쪽 for문으로 돌아간다.

 

 

 

for문 예시

int 타입의 n이 1이고, n이 5보다 작거나 같을 때 까지 n을 증가연산(+1) 해주는 반복문.

 

 

int 타입의 n이 10이고, n이 0보다 클때 까지 n을 감소연산(-1) 해주는 반복문.

 

 

실행결과

 

break와 continue

 


정수 1부터 10까지 출력.

 

정수 1부터 10에서 홀수만 출력.

실행 결과

 

+ Recent posts