<명품 JAVA Programming> - Chapter3 연습문제(1, 2, 3, 4, 5, 6)

1. 다음 프로그램에 대해 물음에 답하라.

 

 

int sum = 0, i = 0;
while (i < 100) {
	sum = sum + i;
	i += 2;
}
System.out.println(sum);

1) 무엇을 게산하는 코드이며 실행 결과 출력되는 내용은?

 -> 100보다 작은 짝수의 합을 계산하는 코드이다. 2450이 출력된다.

 

2) 위의 코드를 main()메소드로 만들고 WhileTest 클래스로 완성하라.

3) for문을 이용하여 동일하게 실행되는 ForTest 클래스를 작성하라.

 

 2, 3 ->

package chapter3;

public class chapter3_1 {
	public static void main(String[] arags) {
		int sum = 0, i = 0;
		for (i = 0; i < 100; i += 2) {
			sum += i;
		}
		System.out.println(sum);
	}
}

 

4) do-while문을 이용하여 동일하게 실행되는 DoWhileTest 클래스를 작성하라.

package chapter3;

public class chapter3_1 {
	public static void main(String[] arags) {
		int sum = 0, i = 0;	
		do{
			sum = sum + i;
			i += 2;
		} while (i < 100);
		System.out.println(sum);
	}
}	

 

클래스명은 굳이 변경하지 않았다.

 


2. 다음 2차원 배열 n을 출력하는 프로그램을 작성하라.

 

package chapter3;

public class chapter3_2 {
	public static void main(String[] args) {
		int n [][] = {{1}, {1,2,3}, {1}, {1,2,3,4}, {1,2}};
		
		for(int i = 0; i < n.length; i++) {
			for (int j = 0; j < n[i].length; j++)
				System.out.print(n[i][j] + " ");
			System.out.println("");
		}
	}
}

 


 

3. Scanner를 이용하여 정수를 입력받고 다음과 같이 *을 출력하는 프로그램을 작성하라.

 

package chapter3;

import java.util.Scanner;
public class chapter3_3 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("정수를 입력하시오>>");
		int n = scanner.nextInt();
		
		for(int i = n; i > 0; i--) {
			for(int j = i; j > 0; j--)
				System.out.print("*");
			System.out.println();
		}
		scanner.close();
	}
}

 


 

4. Scanner를 이용하여 소문자 알파벳을 하나 입력받고 다음과 같이 출력하는 프로그램을 작성하라. 다음은 e를 입력받았을 경우이다.

 

package chapter3;

import java.util.Scanner;
public class chapter3_4 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("소문자 알파벳 하나를 입력하시오>>");
		String s = scanner.next();
		char c = s.charAt(0);
		
		for(char i = 97; i <= c; i++) {
			for(char j = i; j <= c; j++)
				System.out.print(j);
			System.out.println();
		}
		scanner.close();
	}
}

 


 

5. 양의 정수 10개를 입력받아 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력하는 프로그램을 작성하라.

 

package chapter3;

import java.util.Scanner;
public class chapter3_5 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		int arr [] = new int[10];
		int i;
		System.out.print("양의 정수 10개를 입력하시오>>");
		for(i = 0; i < 10; i++)
			arr[i] = scanner.nextInt();
		
		System.out.print("3의 배수는 " );
		for(i = 0; i < 10; i++) {
			if(arr[i] % 3 == 0)
				System.out.print(arr[i] + " ");
		}
		
		scanner.close();
	}
}

 


 

6. 배열과 반복문을 이용하여 프로그램을 작성해보자. 키보드에서 정수로 된 돈의 액수를 입력받아 오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전, 50원짜리 동전, 10원짜리 동전, 1원짜리 동전이 각 몇 개로 변환되는지 예시와 같이출력하라. 이때 반드시 다음 배열을 이용하고 반복문으로 작성하라.

 

package chapter3;
import java.util.Scanner;
public class chapter3_6 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		int [] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1};	//환산할 돈의 종류
		System.out.print("금액을 입력하시오>>");
		int price = scanner.nextInt();
		
		for(int i = 0; i < unit.length; i++) {
			if(price / unit[i] != 0) {
				System.out.println(unit[i] + "원 짜리 : " + price / unit[i] + "개");
				price %= unit[i];
			}
		}
		
		scanner.close();
	}
}