[Java 기초] 반복문

2022. 1. 20. 21:55·Java & Kotlin
목차
  1. 정수 값을 입력 받아 더하고 '0'이 입력되면 합을 출력하는 프로그램
  2. 중첩 while문 사용한 구구단 프로그램

while문 vs do-while문

정수 값을 입력 받아 더하고 '0'이 입력되면 합을 출력하는 프로그램

1) while문

  • 값을 입력 받는 부분이 main 함수와 while문 내에서 필요하다.
package ch18;
import java.util.*;

public class SumInput {
    public static void main(String args[]) {

        Scanner scanner = new Scanner(System.in);
        int input = scanner.nextInt(); // 값 입력 받는 부분
        int sum = 0; // 지역 변수 초기화 필요

        while (input != 0) {
            sum += input;
            input = scanner.nextInt(); // 값 입력 받는 부분
        }

        System.out.println(sum);
    }
}

2) do-while문

  • while문과 다르게 수행을 한번 한 뒤, 다음 수행부터 조건을 확인한다.
  • do-while문 내에서만 값을 입력받는다 -> 코드 깔끔!
  • 자주 쓰이진 않지만 간혹 while문보다 유용함.
package ch18;
import java.util.*;

public class SumInput {
    public static void main(String args[]) {

        Scanner scanner = new Scanner(System.in);
        int input;
        int sum = 0;

        do {
            input = scanner.nextInt(); // 입력받는 부분
            sum += input;
        } while (input != 0);

        System.out.println(sum);
    }
}

 

for문

  • 횟수를 세는 변수인 i는 0으로 초기화하는 것이 좋다.
  • for문의 statement들은 생략되거나 여러개 들어갈 수 있다.
  • 생략될 경우 각 statement는 for문 내에서 정의할 수 있다.
  • 모든 statement가 생략되는 경우 for( ; ; ) : 무한반복
package ch19;

public class ForTest {

    public static void main(String[] args) {
        int cnt = 1; 
        int sum = 0;

        for(int i=0; i<10; i++, cnt++) {
            sum += cnt;
        }

        System.out.println(sum);
    }

}

 

중첩 반복문 (Nested-loop)

  • 중첩 되는 횟수만큼 시간은 많이 소요된다.
  • 두번 반복 시 O(n^2)

 

중첩 while문 사용한 구구단 프로그램

내부 while문에서 반복을 수행하고 j == 9 에서 j++가 실행되면 값은 10으로 저장된다. 그래서 다음 외부 반복문이 실행되도 j값이 내부 while문의 조건을 만족하지 못하기 때문에 값이 출력되지 못한다. 따라서 첫번째 내부 while문이 실행되고 나면 j값을 초기화 해주어야 한다.

 

package ch20;

public class MultiplicationTest {

    public static void main(String[] args) {

        int i,j;

        i = 2; 
        j = 1;

        while (i <= 9) {
            while (j <= 9) {
                System.out.printf("%d * %d= %d\n",i,j,i*j);
                j++; 
            }
            i++;
            j = 1; // j 값 초기화
        }


    }

}
저작자표시 비영리 변경금지 (새창열림)

'Java & Kotlin' 카테고리의 다른 글

[Java 기초] break문, continue문  (0) 2022.01.21
[Java 기초] switch-case 문  (0) 2022.01.19
[Java 기초] 조건 연산자, 비트 연산자  (0) 2022.01.19
  1. 정수 값을 입력 받아 더하고 '0'이 입력되면 합을 출력하는 프로그램
  2. 중첩 while문 사용한 구구단 프로그램
'Java & Kotlin' 카테고리의 다른 글
  • [Java 객체지향] 객체지향 프로그래밍
  • [Java 기초] break문, continue문
  • [Java 기초] switch-case 문
  • [Java 기초] 조건 연산자, 비트 연산자
Sue
Sue
개발 공부 로그
  • Sue
    Sue's devlog
    Sue
  • 전체
    오늘
    어제
    • 분류 전체보기 (122)
      • Algorithm (2)
      • WEB (8)
      • Java & Kotlin (83)
      • Spring (26)
      • Database (1)
      • Infra (0)
      • Git (1)
      • devlog (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Sue
[Java 기초] 반복문

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.