패키지명은 원하는 대로 변경가능합니다.
💡
다음 프로그램에 대해 물음에 답하라?
int sum=0, i=0;
while (i < 100) {
sum = sum + i;
i += 2;
)
System.out.println(sum);
(1) 무엇을 계산하는 코드이며 실행 결과 출력되는 내용은?
(2) 위의 코드를 main() 메소드로 만들고 WhileTest 클래스로 완성하라.
(3) for 문을 이용하여 동일하게 실행되는 ForTest 클래스를 작성하라.
(4) do-while 문을 이용하여 동일하게 실행되는 DoWhileTest 클래스를 작성하라.
[정답]
(1) 2450
(2)
package test.ch03;
public class WhileTest {
public static void main(String[] args) {
int sum=0, i=0;
while (i < 100) {
sum = sum + i;
i += 2;
}
System.out.println(sum);
}
}
(3)
package test.ch03;
public class ForTest {
public static void main(String[] args) {
int sum = 0, i = 0;
for (i = 0; i < 100; i += 2) {
sum = sum + i;
}
System.out.println(sum);
}
}
(4)
package test.ch03;
public class DoWhileTest {
public static void main(String[] args) {
int sum = 0, i = 0;
do {
sum = sum + i;
i += 2;
} while (i < 100);
System.out.println(sum);
}
}
💡
다음 2차원 배열 n을 줄력하는 프로그램을 작성하라
int n [][] = {{1}, {1,2,3}, {1}, {1,2,3,4}, {1,2}};
[정답]
public class DaraSolution {
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();
}
}
}
💡
Scanner를 이용하여 정수를 입력받고 다음과 같이 *를 출력하는 프로그램을 작성하라. 다음은 5를 입력받았을 경우이다.
[정답]
import java.util.Scanner;
public class DaraSolution {
public static void main(String[] args) {
// Scanner를 이용해 정수 입력받기
Scanner scanner = new Scanner(System.in);
System.out.print("정수를 입력하시오>> ");
int num = scanner.nextInt();
// 입력받은 정수만큼 역삼각형 출력
for (int i = 0; i < num; i++) {
for (int j = 0; j < num - i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
💡
Scanner를 이용하여 소문자 알파벳을 하나 입력받고 다음과 같이 출력하는 프로그램을 작성하라. 다음은 e를 입력받았을 경우이다
[정답]
import java.util.Scanner;
public class DaraSolution {
public static void main(String[] args) {
// Scanner를 이용해 정수 입력받기
Scanner scanner = new Scanner(System.in);
System.out.print("소문자 알파벳 하나를 입력하시오>> ");
char c = scanner.next().charAt(0);
// a~입력받은 소문자 알파벳 -> a 순서로 출력
for (char i = c; i >= 'a'; i--) {
for (char j = 'a'; j <= i; j++) {
System.out.print(j);
}
System.out.println();
}
}
}
💡
양의 정수를 10개 입력받아 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력하는 프로그램을 작성하라
[정답]
import java.util.Scanner;
public class DaraSolution {
public static void main(String[] args) {
// Scanner를 이용해 정수 입력받기
Scanner scanner = new Scanner(System.in);
System.out.print("양의 정수 10개를 입력하시오>> ");
// 3의 배수만 출력
for (int i = 0; i < 10; i++) {
int num = scanner.nextInt();
if (num % 3 == 0) {
System.out.print(num + " ");
}
}
}
}
💡
배열과 반복문을 이용하여 프로그램을 작성해보자. 키보드에서 정수로 된 돈의 액수를 입력받아 오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전, 50원짜리 동전, 10원짜리 동전, 1 원짜리 동전이 각 몇 개로 변환되는지 예시와 같이 출력하라. 이때 반드시 다음 배열을 이용하고 반복문으로 작성하라
int [] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1}; // 환산할 돈의종류
[정답]
import java.util.Scanner;
public class DaraSolution {
public static void main(String[] args) {
// 환산할 돈의 종류
int [] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1};
// Scanner를 이용해 정수 입력받기
Scanner scanner = new Scanner(System.in);
System.out.print("금액을 입력하시오>> ");
int money = scanner.nextInt();
// 변환 출력
for (int i = 0; i < unit.length; i++) {
int count = money / unit[i];
money = money % unit[i];
System.out.println(unit[i] + "원 짜리 : " + count + "개");
}
}
}
💡
정수를 10개 저장하는 배열을 만들고 1 에서 10까지 범위의 정수를 랜덤하게 생성하여 배열에 저장하라. 그리고 배열에 든 숫자들과 평균을 출력하라
[정답]
import java.util.Scanner;
public class DaraSolution {
public static void main(String[] args) {
// 랜덤하게 정수 10개 배열, 합 저장
int[] arr = new int[10];
int sum = 0;
for (int i = 0; i < arr.length; i++) {
// 랜덤 정수 출력
arr[i] = (int) (Math.random() * 10 + 1);
System.out.print(arr[i] + " ");
sum += arr[i];
}
System.out.println("\n평균은 " + (double) sum / arr.length);
}
}
💡
정수를 몇 개 저장할지 키보드로부터 개수를 입력받아 (100보다 작은 개수) 정수 배열을 생성하고, 이곳에 1 에서 100까지 범위의 정수를 랜덤하게 삽입하라. 배열에는 같은 수가 없도록 하고 배열을 출력하라.
[정답]
import java.util.Scanner;
public class DaraSolution {
public static void main(String[] args) {
// Scanner 객체 생성 및 정수 입력 받기
Scanner scanner = new Scanner(System.in);
System.out.print("정수 몇개?");
int num = scanner.nextInt();
// 입력받은 정수만큼 배열 생성해 랜덤 정수 저장
int[] arr = new int[num];
for (int i = 0; i < arr.length; i++) {
arr[i] = (int)(Math.random() * 100);
}
// 각 배열을 10개 단위로 나누어 출력
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
if ((i + 1) % 10 == 0) {
System.out.println();
}
}
}
}
💡
4X4의 2차원 배열을 만들고 이곳에 1 에서 10까지 범위의 정수를 랜덤하게 생성하여 정수 16개를 배열에 저장하고, 2차원 배열을 화면에 출력하라.
[정답]
public class DaraSolution {
public static void main(String[] args) {
// 4x4 2차원 배열을 만들고
int[][] arr = new int[4][4];
// 1~10 범위 정수 랜덤 생성하고 저장
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = (int) (Math.random() * 10) + 1;
}
}
// 2차원 배열 화면에 출력
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
}
💡
4X4의 2차원 배열을 만들고 이곳에 1 에서 10까지 범위의 정수를 10개만 랜덤하게 생성하여 임의의 위치에 삽입하라. 동일한 정수가 있어도 상관없다. 나머지 6개의 숫자 는 모두0이다. 만들어진 2차원 배열을 화면에 출력하라
[정답]
public class DaraSolution {
public static void main(String[] args) {
// 4x4 2차원 배열을 만들고
int[][] arr = new int[4][4];
// 배열에 들어갈 0, 6개 랜덤하게 지정
for (int i = 0; i < 10; i++) {
int x = (int)(Math.random() * 4);
int y = (int)(Math.random() * 4);
if (arr[x][y] == 0) {
arr[x][y] = (int)(Math.random() * 10) + 1;
} else {
i--;
}
}
// 2차원 배열 화면에 출력
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
}
💡
다음과 같이 작동하는 Average.java를 작성하라. 명령행 인자는 모두 정수만 사용되며 정수들의 평균을 출력한다. 다음 화면은 컴파일된 Average.class 파일을 c:\Temp 디렉터리에 복사한 뒤 실행한 경우이다. 원본 Average.class 파일은 이클립스의 프로젝트 폴더 밑에 bin 폴더에 있다.
[정답]
package test.ch03;
public class Average {
public static void main(String[] args) {
// 입력된 정수가 없을 경우 프로그램 종료
if (args.length == 0) {
System.out.println("입력된 정수가 없습니다.");
System.exit(0);
}
// 입력된 정수의 평균 계산
int sum = 0;
for (String arg : args) {
sum += Integer.parseInt(arg);
}
System.out.println((double) sum / args.length);
}
}
💡
다음과 같이 작동하는 Add. java를 작성하라. 명령행 인자 중에서 정수 만을 골라 합을 구하라. 다음 화면은 Add.class 파일을 c:\Temp 디렉터리에 복사한 뒤 실행한 경우이다. 원본 Add.class 파일은 이클립스 프로젝트 폴더 밑에 bin 폴더에 있다
[정답]
package test.ch03;
public class Add {
public static void main(String[] args) {
// 입력된 정수가 없을 경우 프로그램 종료
if (args.length == 0) {
System.out.println("입력된 정수가 없습니다.");
System.exit(0);
}
// 입력된 정수의 합 계산
int sum = 0;
// 정수가 아니면 NumberFormatException 처리
for (String arg : args) {
try {
sum += Integer.parseInt(arg);
} catch (NumberFormatException e) {
System.out.println("정수가 아닌 값이 입력되었습니다.");
System.exit(0);
}
}
System.out.println(sum);
}
}
💡
반복문을 이용하여 369게임에서 박수를 쳐야 하는 경우를 순서대로 화면에 출력해보자. 1 부터 시작하며 99까지만 한다. 실행 사례는 다음과 같다.
[정답]
public class DaraSolution {
public static void main(String[] args) {
int cnt = 0;
for (int i = 0; i < 100; i++) {
// 박수 치는 갯수 세기
// 1의 자리, 10의 자리
if (i % 10 == 3 || i % 10 == 6 || i % 10 == 9) {
cnt++;
}
if (i / 10 == 3 || i / 10 == 6 || i / 10 == 9) {
cnt++;
}
// 박수 치기
if (cnt == 1) {
System.out.println(i + " 박수 짝");
} else if (cnt == 2) {
System.out.println(i + " 박수 짝짝");
}
cnt = 0;
}
}
}
💡
다음 코드와 같이 과목과 점수가 짝을 이루도록 2개의 배열을 작성하라.
String course[] = { "Java", "C++", "HTMLS", "컴퓨터구조", "안드로이드" };
int score[] = {95, 88, 76, 62, 55};
그리고 다음 예시와 같이 과목 이름을 입력받아 점수를 출력하는 프로그램을 작성하라. ”그만”을 입력받으면 종료한다.
[정답]
import java.util.Scanner;
public class DaraSolution {
public static void main(String[] args) {
String course[] = { "Java", "C++", "HTMLS", "컴퓨터구조", "안드로이드" };
int score[] = {95, 88, 76, 62, 55};
// 과목 이름을 입력받아 점수를 출력
Scanner scanner = new Scanner(System.in);
// 그만이라고 입력받을 때까지 찾기
while (true) {
System.out.print("과목 이름>> ");
String name = scanner.next();
// 그만이라고 입력받으면 프로그램 종료
if (name.equals("그만")) {
System.out.println("프로그램을 종료합니다.");
break;
}
// 과목 이름을 입력받아 점수를 출력
int i;
for (i = 0; i < course.length; i++) {
if (name.equals(course[i])) {
System.out.println(course[i] + "의 점수는 " + score[i]);
break;
}
}
if (i == course.length) {
System.out.println("없는 과목입니다.");
}
}
}
}
💡
[정답]
import java.util.InputMismatchException;
import java.util.Scanner;
public class DaraSolution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("곱하고자 하는 두 정수 >> ");
while(true) {
try {
int a = scanner.nextInt();
int b = scanner.nextInt();
System.out.println(a+"*"+b+"="+a*b);
break;
}
catch (InputMismatchException e) {
System.out.println("정수를 입력하세요");
scanner.next();
}
}
}
}
💡
[정답]
import java.util.InputMismatchException;
import java.util.Scanner;
public class DaraSolution {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str[] = {"가위", "바위", "보"};
// 그만이라고 입력할 때까지 가위바위보 게임 진행
while (true) {
System.out.print("가위바위보!>>");
String user = scanner.next();
// 사용자가 그만이라고 입력하면 게임 종료
if (user.equals("그만")) {
System.out.println("게임을 종료합니다...");
break;
}
int n = (int) (Math.random() * 3); // 0, 1, 2 중 하나
System.out.print("사용자: " + user + ", 컴퓨터: " + str[n] + ", ");
// 가위바위보 승패 결정
if (user.equals("가위")) {
if (str[n].equals("가위")) {
System.out.println("비겼습니다.");
} else if (str[n].equals("바위")) {
System.out.println("사용자가 졌습니다.");
} else {
System.out.println("사용자가 이겼습니다.");
}
} else if (user.equals("바위")) {
if (str[n].equals("가위")) {
System.out.println("사용자가 이겼습니다.");
} else if (str[n].equals("바위")) {
System.out.println("비겼습니다.");
} else {
System.out.println("사용자가 졌습니다.");
}
} else if (user.equals("보")) {
if (str[n].equals("가위")) {
System.out.println("사용자가 졌습니다.");
} else if (str[n].equals("바위")) {
System.out.println("사용자가 이겼습니다.");
} else {
System.out.println("비겼습니다.");
}
} else {
System.out.println("가위, 바위, 보 중에서 입력하세요!");
}
}
}
}
'대학교 > 명품 Java programming 문제' 카테고리의 다른 글
[Java] 명품 Java Programming 4장 연습 문제 풀이 해설 (실습 문제) (0) | 2024.05.20 |
---|---|
[Java] 명품 Java Programming 4장 연습 문제 풀이 해설 (이론 문제) (0) | 2024.05.19 |
[Java] 명품 Java Programming 3장 연습 문제 풀이 해설 (이론 문제) (0) | 2024.05.16 |
[Java] 명품 Java Programming 2장 연습 문제 풀이 해설 (실습 문제) (0) | 2024.05.15 |
[Java] 명품 Java Programming 2장 연습 문제 풀이 해설 (이론 문제) (0) | 2024.05.15 |