자바(Java)학습/1_Java 기초
17.반복문(While문)
thespeace
2021. 8. 20. 17:16
반복문
(while)
반복문부터는 중요한만큼 난이도가 올라간다
이해가 어렵다면 이해할때까지 반복해야 한다
왜냐면 눈에 보이지 않기때문에, 상상속으로 이해를 해야한다
조건이 참(true)인 동안 명령된 set(statement)을 반복수행한다
주어진 조건에 맞는 동안(true) 지정된 수행 문 을 반복적으로 수행하는 제어 문
조건이 맞지 않으면 반복하던 수행을 멈추게 됨
조건은 주로 반복 횟수나 값의 비교의 결과에 따라 true, false 판단 됨
ex) 달리는 자동차, 일정 횟수 만큼 돌아가는 나사못, 특정 온도까지 가동되는 에어컨 등
수행문을 수행하기 전, 조건을 체크하고 그 조건의 결과가 true인 동안 반복 수행
while(조건식) {
수행문 1;
....
} //조건식이 참인 동안 반복 수행
수행문 2;
....
예제 : 1부터 10까지 숫자를 더하여 그 결과를 출력해 보자
package 17;
public class WhileTest {
public static void main(String[] args) {
int num=1;
int sum=0;
while(num <= 10) {
sum += num; // sum= sum+num; =+ : 누적대입연산자
num++; //num=num+1;
}
System.out.println(sum);
System.out.println(num);
}
}
//Console : 55 //1~10까지의 합
// 11 //num 증가값이 벗아난 값
무한 반복 할 때
while(true) {
.......
}
package 17;
import java.util.Scanner;
public class WhileTest {
public static void main(String[] args) {
while(true) {
System.out.println("출력");
}
}
}
응용 예제
package 17;
import java.util.Scanner;
public class WhileTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(true) { //반복문 시작
System.out.println("주문하세요 y/n");
char ju = scanner.next().charAt(0);
if(ju=='y'||ju=='Y') {//주문선택시작
System.out.println("주문선택");
System.out.println("메뉴 1.자장면 2.짬뽕 3.탕수육");
System.out.print("번호를 선택해주세요.");
int menu = scanner.nextInt();
switch(menu) {//스위치 시작
case 1 :
System.out.println("자장면 선택");
System.out.println("자장면 곱배기 선택 y/n");
System.out.println("y나 n을 눌러주세요");
char gob = scanner.next().charAt(0);
if(gob=='y'||gob=='Y') {
System.out.println("자장면곱배기선택");
}else {
System.out.println("자장면보통선택");
}
break;
case 2 :
System.out.println("짬뽕 선택");
System.out.println("짬뽕 곱배기 선택 y/n");
System.out.println("y나 n을 눌러주세요");
gob = scanner.next().charAt(0);
if(gob=='y'||gob=='Y') {
System.out.println("짬뽕곱배기선택");
}else {
System.out.println("짬뽕보통선택");
}
break;
case 3 :
System.out.println("탕수육 선택");
System.out.println("탕수육메뉴선택 1.대 2.중 3.소");
System.out.println("숫자를 입력해주세요.");
int tang = scanner.nextInt();
if(tang==1) {
System.out.println("탕수육대자선택");
}else if(tang==2) {
System.out.println("탕수육중자선택");
}else if(tang==3) {
System.out.println("탕수육소자선택");
}
break;
default:
System.out.println("해당 메뉴가 없습니다.");
}//스위치 끝
}//주문선택의 끝
else {//주문취소의 시작
System.out.println("주문취소");
System.exit(0); //탈출, 비상구 - false 일때 빠져나온다.
}//주문취소의 끝
}//반복문 끝
}
}
※디버그모드를 활용하자!
눈에 보이지 않는 것들을 공부하는 것이라 잘 이해가 되지 않는데, 그걸 순서대로 시각적으로 확인할수 있는게 디버그 모드이다.
프로그래머에게 있어 오타는 수업이고, ERROR는 피할 수 없는 것이고 민감한 부분이다.
문법, 로직의 결함을 디버그모드를 활용해서 발견하면, 효율적으로 시간단축 할 수 있다.