package while_statement;
public class Ex {
public static void main(String[] args) {
/*
* while문
* - for문과 달리 조건식의 위치만 정해져있고, 초기식과 증감식의 위치는 유동적인 반복문
* => 초기식은 while문 보다 윗쪽(앞)에 위치해야하며
* 증감식은 while문 안쪽에 위치하고, while문 안쪽에서 위치는 변할 수 있음
* - 주로 반복 횟수가 정해져 있지 않고, 어떤 조건에 따라 변하는 반복문에 사용
* (for문은 주로 반복 횟수가 정해져 있는 경우 사용)
* - for문과 while문은 상호 100% 변환 가능
*
* < 기본 문법 >
* 초기식; // 최소한 while문 보다 윗쪽에 위치해야함
*
* while(조건식) {
* 증감식; // 실행문 위에 올 수도 있고
*
* 실행할 문장들...
*
* 증감식; // 실행문 아래에 올 수도 있다
* }
*
*/
// for문을 사용하여 "Hello, World!" 문자열 10번 반복 출력
// 초기식 조건식 증감식
for(int i = 1; i <= 10; i++) {
System.out.println(i + " : Hello, World!"); // 실행문
}
System.out.println("--------------------------");
// while 문을 사용하여 "Hello, World!" 문자열 10번 반복 출력
int i = 1; // 초기식
while(i <= 10) { // 조건식
System.out.println(i + " : Hello, World!"); // 실행문
i++; // 증감식
}
System.out.println("--------------------------");
// 정수 1 ~ 10 까지 1씩 증가하면서 i값 출력(1 2 3 4 5 6 7 8 9 10)
i = 1;
while(i <= 10) {
System.out.print(i + " ");
i++;
}
System.out.println("");
System.out.println("--------------------------");
// 정수 1 ~ 10 까지 2씩 증가하면서 i값 출력(1 3 5 7 9)
i = 1;
while(i <= 10) {
System.out.print(i + " ");
i += 2;
}
System.out.println("");
System.out.println("--------------------------");
// 정수 10 ~ 1 까지 1씩 감소하면서 i값 출력(10 9 8 7 6 5 4 3 2 1)
i = 10;
while(i >= 1) {
System.out.print(i + " ");
i--;
}
System.out.println();
System.out.println("=========================================");
for(i = 1; i <= 10; i++) {
System.out.println(i + " : Hello, World!"); // 실행문
}
System.out.println("for문 종료 후 i값 = " + i);
System.out.println("----------------");
// while 문은 증감식 위치에 따라 실행되는 과정도 달라질 수 있다!
i = 1; // 초기식
while(i <= 10) { // 조건식
i++; // 증감식(실행문보다 윗쪽에 위치)
// => 초기식 값을 가장 먼저 1 증가시킨 후 실행문을 실행하게 되므로
// 제어변수 i값이 1 -> 2로 증가한 후 출력문이 실행됨
System.out.println(i + " : Hello, World!"); // 실행문
// i++; // 증감식(실행문보다 아래쪽에 위치)
// => 증감식보다 실행문이 먼저 실행되므로, 초기식 1을 먼저 출력한 후
// 제어변수 값이 1 -> 2 로 증가됨
}
System.out.println("while문 종료 후 i값 = " + i);
// => 전체 반복 횟수는 10회로 동일하고 종료 후 i값도 11로 동일하나
// 실행 과정에서 제어변수 i값이 다를 수 있으므로
// 제어변수를 횟수(카운팅 용도)로만 사용하지 않고 직접 값을 사용하는 경우 주의해야한다!
System.out.println("----------------");
// 1 ~ 10 까지 1씩 증가하면서 반복할 경우
// 증감식 가장 먼저 실행되는 경우에는 초기식을 0으로 시작하면 0 -> 1 로 변화된 값으로 시작되며,
// 조건식을 9까지만 지정하면 9 -> 10 으로 변화된 값이 출력된 후 종료됨
i = 0; // 초기식
while(i <= 9) { // 조건식
i++; // 증감식(실행문보다 윗쪽에 위치)
System.out.println(i + " : Hello, World!"); // 실행문
// i++; // 증감식(실행문보다 아래쪽에 위치)
}
System.out.println("while문 종료 후 i값 = " + i);
}
}