h-i-s-t-o-r-y

[Java] 제어문 (control statement) - 조건문과 반복문 본문

Java

[Java] 제어문 (control statement) - 조건문과 반복문

H' 2021. 7. 12. 20:18

▷ 제어문 ?

프로그램의 흐름(flow)을 바꾸어 주는 문장

  1. 조건문 - if문, if ~ else문
  2. 분기문 - switch문
  3. 반복문 - for문 , foreach문
  4. 조건반복문 - while문, do~while문
  5. 기타 - break문, continue문

▷ 조건문 - if문

if (condition) {
    조건식이 참이면 수행함
}
int n = 11;
if(n%2 == 0) {  // 짝수라면 짝수 출력 - 2로 나누어 떨어지는 정수 2n
    System.out.println("even number");
}
if(n%2 == 1) {  // 홀수라면 홀수 출력 - 2로 나누어 떨어지지 않는 정수 2n+1
    System.out.println("odd number");
}
// ** 0은 짝수도 홀수도 아니다.

▷ 분기문 - switch문

switch (key) {      // key 값: 정수, 문자열, 수식, 변수
    case value :    // value 값: 변수X, [리터럴] 만 사용가능
        break;
    default:         // default: 모든 case 외의 경우 수행할 코드
        break;
}
int n = 11;
switch ( n%2 ) {
    case 0:
        System.out.println("even number");
        break;
    default:
        System.out.println("odd number");
        break;
}

 


▷ 반복문 - for문

for (int i = 0; i < args.length; i++) {
    // (초기값; 조건식; 증감연산자)
    // 초기값을 증감시키면서 조건식을 만족하는 동안 {} 안을 반복함
}

// for문에서 초기식, 증감식 없어도됨
// for( ; ; ) -> 무한루프
// 1~10 까지의 합을 구해서 출력
int sum = 0;
for (int i = 1; i <= 10; i++) {
        if( i==10 ) {
            System.out.print(i);
        }
        if(i != 10) {
            System.out.print(i+ "+");
        }
        sum += i;
    }
System.out.println("=" + sum);

> 변수 i 선언 위치 차이점 ?

int sum = 0;
int i = 1; 
//main함수 안에서 변수 선언 - main, for문 안에서 모두 사용가능한 전역변수

for (int i = 1; i <= 10; i++) { 
//for문 안에서 초기식 변수 선언 - for문 안에서'만' 사용되는 지역변수
    System.out.printf("%d+", i);
    sum += i;
}

> 조건식 작성에 주의

int sum = 0;
for (int i = 1; i >= 10; i++)     //조건식이 거짓이므로 for구문이 하나도 실행안됨
{
    System.out.printf("%d+", i);
    sum += i;
}
System.out.printf("\\b=%d\\n", sum);

 


▷ 조건반복문 - while문

while (condition) {
    조건식이 참일 동안 반복함
}
boolean flag = false;        // !flag = true;
while (flag) {   // 조건식이 거짓이므로 실행X
    System.out.println("홍길동");
}
System.out.println("END");
// while문 사용해 홍길동 10번 출력
int count = 1;
while (true) {
    System.out.printf("%d - %s\\n", count, "홍길동");
    if (count==10) break;
    count++;
}

// **좋은 코드는 if문 주지말고 while 조건을 변경하는 것 !
int count = 1;
while (count <= 10) {
    System.out.printf("%d - %s\\n", count, "홍길동");
    count++;
}
// while문 사용해 1~10까지의 합
int i = 1, sum = 0;
while (i <= 10) {
    System.out.printf("%d+",i);
    sum += i;
    i++;
}
System.out.printf("\\b=%d\\n", sum);

// **조건식에 [증감 연산자] 익숙해질 것..
int i = 0, sum = 0;
while (++i <= 10) {    //1~10
    System.out.printf("%d+",i);
    sum += i;
}
System.out.printf("\\b=%d\\n", sum);

int i = 0, sum = 0;
while (i++ < 10) {    //1~10
    System.out.printf("%d+",i);
    sum += i;
}
System.out.printf("\\b=%d\\n", sum);

>  for문과 while문 차이  ?

for문 - 반복문 - 반복횟수가 정해져 있음
while문 - 조건반복문 - 반복조건이 정해져 있음

▷ do~while문

do {
    // 최소한 한번은 무조건 수행하고 난 다음, while문의 조건식을 체크
} while (condition);

▷ Break문과 Return문

Break문 - 반복문을 빠져나감

if ( ) break;
int sum = 0;
for (int i = 1; i <= 10; i++) {
    if (i==5) break;        //1~4까지 출력하고 끝남 for문 빠져나옴
    System.out.printf("%d+", i);
    sum += i;
}
System.out.printf("\\b=%d\\n", sum);

 

Return문 - 함수를 빠져나감

함수() {return;}
if(number==0) {
    System.out.println("프로그램 종료");
    return ;    // main 함수를 빠져나간다 == 프로그램 종료
}

 

 

'Java' 카테고리의 다른 글

[Java] 점수 입력받아 수우미양가 출력하기  (0) 2021.07.12
[Java] 두 정수 사이의 합 구하기  (0) 2021.07.12
[Java] 연산자  (0) 2021.07.12
[Java] 입력받아 출력하기  (0) 2021.07.12
[Java] 진법 변환과 음수 표현  (0) 2021.07.12
Comments