article thumbnail image
Published 2022. 1. 3. 01:27

- 반복문

특정한 코드나 행위를 반복해야 할 때 사용하는 문장

 

조건에 의한 반복문

while, do ~ while

 

횟수에 의한 반복문

 for

 

 

- while문

조건에 의한 반복문

while (조건식) {
      조건식 연산결과가 참이면 반복수행
}
// -> 조건식을 연산하고 false이면 탈출한다.

 

 

- do ~ while 문

조건에 의한 반복문

while문과 동일하지만 무조건 한 번은 실행한다.

do {
       조건식의 연산결과 참이면 반복 수행
} while (조건식);
// -> 조건식을 연산하고 탈출한다.

 

 


while문으로 Quiz 출력하기!

		Scanner sc = new Scanner(System.in);
		int choice = 0;

		while (choice != 3) {
			System.out.println("다음 중 프로그래밍 언어가 아닌것은?\n" 
		+ "1. Java\n2. 파이썬\n3. 망둥어\n4. C언어\n0. 나가기");
			choice = sc.nextInt();
			if (choice == 3) {
				System.out.println("정답입니다.");
			} else if (choice == 1 || choice == 2 || choice == 4) {
				System.out.println("오답입니다.");
			} else if (choice == 0) {
				System.out.println("안녕히 가세요.");
				break;
			} else {
				System.out.println("잘못입력하셨습니다.");
			}
		}

 

위 코드의 결과1
위 코드의 결과 

 

 


- for문

횟수에 의한 반복문

반복 횟수가 특정된 경우에만 사용한다.

for문 안에서 초기식 때 선언한 변수를 사용할 수 있고, 그 변수의 값은 매 반복마다 일정하게 변하게 된다.

무언가 값이 일정하게 변하는 반복이 필요하다면 아주 높은 확률로 for문을 사용한다.

for (초기식; 조건식; 증감식) {
           반복해서 수행할 문장
}

초기식 : 새로운 변수 하나 선언 (for문 내부에서 그 변수를 사용 가능하다)

조건식 : for문 내부를 반복 시작하기 전에 항상 조건식 검사

증감식 : 변수의 값을 증가 혹은 감소시키는 식

 

 

 


예제로 실습하기!

		// 100부터 2씩 감소하며 20번 출력하기
		for (int i =0; i <= 20; i++) {
			System.out.println(100-(i*2));
		}
		
		// 1 부터 10까지의 합 출력하기
		int sum = 0;
		for(int i=0; i < 11; i++) {
			sum += i;
		} System.out.println(sum);
		
		// 정수 하나 입력받아서 1부터 그 수까지 출력하기
		Scanner sc = new Scanner(System.in);
		System.out.println("정수를 입력하세요 : ");
		int num = sc.nextInt();
		
		for (int  i=1; i <= num; i++) {
			System.out.println(i);
		}
		
		// 정수 두개 n,m 입력받아서 n부터 m까지 출력하기 (n은 m보다 작다고 가정)
		Scanner sc1 = new Scanner(System.in);
		System.out.println("정수 두 개를 입력하세요 : ");
		int n = sc1.nextInt();
		int m = sc1.nextInt();
		
		for (int i=n; i<=m; i++)	{
			System.out.println(i);
		}
		
		// 1 부터 100까지 중 짝수만 출력하기
		for (int i =1; i <= 100; i++) {
			if (i % 2 == 0) {
				System.out.println(i);
			}
		}
		
		// A~F까지 출력하기 
		for(int i=0; i < 6; i++) {
			System.out.println((char)(i+65));
		}

 

 

위 코드의 결과 동영상

 

- 배열

같은 자료형의 여러 변수를 일렬로 나열해 놓은 공간

 

 

- 배열의 사용 이유

  1. 여러 개의 값들을 하나의 이름과 방 번호로 관리하기 위해서
  2. 규칙성이 없는 값들에 규칙성을 부여하기 위해서

 

- 배열의 선언 및 사용

// 배열의 선언
자료형[] 배열명 = {값1, 값2, ...};
자료형[] 배열명 = new 자료형[칸수];

// 배열의 사용
배열명[index] = 값;                    // 공간
System.out.println(배열명[index]);     // 안에 있는 값

 

 

- 배열의 인덱스 번호

실제 값들이 저장되어 있는 공간이 할당되면 그 공간은 이름이 존재하지 않고 주소 값만 존재한다.

따라서 시작 주소 값을 배열명 변수가 가지고 있고, 내부적인 주소 연산을 통해 다음 주소 값으로 이동한다.

시작 주소에서 이동한 횟수(연산된 정수)가 인덱스 번호 (방 번호)가 되고 첫 번째 방은 배 열명이 갖고 있는 주소에서 0번으로 옮겨야 하므로 인덱스 번호가 0번부터 시작한다.

 

배열의 연산 보충 자료

arData의 주소는 100번지이고, 이 100번지에서 5개의 방이 생긴다.

그리고 10을 찾아가기 위해서는 100번지[0] -> 100번지로 이동해서 0번으로 추가 이동해야 한다.

 

 

배열의 연산 보충 자료

 

arData2의 주소는 100번지이고, 이를 arData3에 대입해서 arData3도 100번지이다.

따라서 arData3 [2] == 100번지의 2번이기 때문에 3을 찾아가고 이것을 300으로 바꾼다.

그래서 출력하면 300으로 나온다.


복사했습니다!