javaTest1
test.controller
Package명 | 클래스명 | 메소드 | 설명 |
test.controller | Test00 | +main(args:String []):void main | 함수 안에서 모든 코드 작업 진행 |
문제 1
키보드로 1개의 정수형(int) 데이터를 입력받아, 1~100 사이의 값일 때만 2의 배수인지 아닌지 를 출력 처리한다
package test.controller;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
if(num >= 1 && num <= 100) {
if(num % 2 == 0) {
System.out.println("2의 배수입니다.");
}
else {
System.out.println("2의 배수가 아닙니다.");
}
}
sc.close();
}
}
문제 2
2단에서 5단까지의 구구단의 결과 중 홀수인 것만 출력한다.
단, for문을 이용한다.
package test.controller;
public class Test2 {
public static void main(String[] args) {
for(int i = 2; i <= 5; i++) {
for(int j = 1; j <= 9; j += 2) {
System.out.printf("%d * %d = %d \n", i, j, (i * j));
}
}
}
}
문제3
1부터 100까지의 모든 정수들의 합과 평균을 구하는 프로그램을 작성한다.
단, while문이나 do while문을 이용하여 작성한다.
(합계와 평균은 double 형으로 계산한다.)
package test.controller;
public class Test3 {
public static void main(String[] args) {
double sum = 0, avg = 0;
int n = 1;
while(n <= 100) {
sum += n;
n++;
}
avg = sum / 100.0;
System.out.println("합계 : " + sum);
System.out.println("평균 : " + avg);
}
}
문제4
1자리 정수형(1부터 9까지만) 값을 2개 입력받아 4칙연산 결과(합, 차, 곱, 나누기한 몫)를 출력한다.
단, 나누는 수(분모)가 0이거나 0보다 작으면 결과는 0 처리한다.
(입력값과 모든 결과는 int 형으로 처리한다.)
package test.controller;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("첫 번째 정수 : ");
int a = sc.nextInt();
System.out.print("두 번째 정수 : ");
int b = sc.nextInt();
int add = a + b;
int sub = a - b;
int mul = a * b;
int div;
if(b <= 0) {
div = 0;
}
else {
div = a / b;
}
System.out.println("합 : " + add);
System.out.println("차 : " + sub);
System.out.println("곱 : " + mul);
System.out.println("나누기 : " + div);
sc.close();
}
}
문제5
키보드로 2개의 정수형 데이터를 입력 받아, 두 수가 모두 1부터 9까지의 수일 때만,
두 수의 곱 이 한자리 수인지 두자리 수인지를 출력한다.
package test.controller;
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("첫 번째 정수 입력 : ");
int a = sc.nextInt();
System.out.print("두 번째 정수 입력 : ");
int b = sc.nextInt();
if(a >= 1 && a <= 9 && b >= 1 && b <= 9) {
if((a * b) < 10) {
System.out.println("한 자리 수 입니다.");
}
else {
System.out.println("두 자리 수 입니다.");
}
}
sc.close();
}
}
문제 6
키보드로 1개의 정수형(int) 데이터를 입력 받아 1부터 5까지 일때만 해당 숫자에 해당하는 결과 를 출력 한다.
단, switch문을 이용한다.
<결과>
1 : ** 입력이 정상적으로 되었습니다! **
2 : ** 조회가 시작되었습니다! **
3 : ** 수정이 정상적으로 되었습니다! **
4 : ** 삭제가 정상적으로 되었습니다! **
5 : ** 정상적으로 종료 되었습니다! **
1~5가 아닌 값이 입력 된 경우 : ** 다시 입력해 주세요! **
package test.controller;
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 (1 ~ 5) : ");
int num = sc.nextInt();
switch(num) {
case 1 :
System.out.println("** 입력이 정상적으로 되었습니다! **");
break;
case 2 :
System.out.println("** 조회가 시작되었습니다! **");
break;
case 3 :
System.out.println("** 수정이 정상적으로 되었습니다! **");
break;
case 4 :
System.out.println("** 삭제가 정상적으로 되었습니다! **");
break;
case 5 :
System.out.println("** 정상적으로 종료 되었습니다! **");
break;
default :
System.out.println("** 다시 입력해 주세요! **");
}
sc.close();
}
}
문제 7
배열에 들어있는 데이터 중 홀수의 값들을 출력하고 합을 구한다.
단, continue를 이용하여 작성한다.
(합계의 값은 double로 처리 한다.)
<사용 데이터>
int [] array = {1,2,3,4,5,6,7,8,9,10};
package test.controller;
public class Test7 {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
double sum = 0;
for(int i = 1; i < array.length; i++) {
if(i % 2 == 0) {
continue;
}
System.out.print(i + "\t");
sum += i;
}
System.out.println("\n합계 : " + sum);
}
}
문제 8
2차원 배열에 들어있는 데이터들의 합계와 평균을 구한다.
(합계와 평균 값은 double로 처리 한다.)
<사용 데이터>
int [][] array = {{12, 41, 36, 56}, {82, 10, 12, 61}, {14, 16, 18, 78}, {45, 26, 72, 23}};
package test.controller;
public class Test8 {
public static void main(String[] args) {
int[][] array = {
{12, 41, 36, 56},
{82, 10, 12, 61},
{14, 16, 18, 78},
{45, 26, 72, 23}
};
double sum = 0, avg = 0;
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array[i].length; j++) {
sum += array[i][j];
avg++;
}
}
avg = sum / avg;
System.out.println("합계 : " + sum);
System.out.println("평균 : " + avg);
}
}
문제 9
2차원 배열에 들어있는 데이터중 가장 큰 값과 가장 작은 값을 구한다.
<사용 데이터>
int [][] array = {{12, 41, 36, 56}, {82, 10, 12, 61}, {14, 16, 18, 78}, {45, 26, 72, 23}};
package test.controller;
public class Test9 {
public static void main(String[] args) {
int[][] array = {
{12, 41, 36, 56},
{82, 10, 12, 61},
{14, 16, 18, 78},
{45, 26, 72, 23}
};
int max = 0, min = 100;
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array[i].length; j++) {
if(array[i][j] < min) {
min = array[i][j];
}
if(array[i][j] > max) {
max = array[i][j];
}
}
}
System.out.println("최대값 : " + max);
System.out.println("최소값 : " + min);
}
}
문제 10
2차원 배열에 들어있는 데이터들 중 3의 배수만 골라내서 새로운 1차원배열에 기록하고 출력한 다.
단, 중복 값은 하나만 기록되게 한다.
<사용 데이터>
int [][] array = {{12, 41, 36, 56}, {82, 10, 12, 61}, {14, 16, 18, 78}, {45, 26, 72, 23}};
int[] copyAr = new int[array의 행갯수 * 열갯수];
package test.controller;
public class Test10 {
public static void main(String[] args) {
int[][] array = {
{12, 41, 36, 56},
{82, 10, 12, 61},
{14, 16, 18, 78},
{45, 26, 72, 23}
};
int size = 0;
for(int i = 0; i < array.length; i++) {
size += array[i].length;
}
int[] copyAr = new int[size];
int copyIndex = 0;
for(int i = 0; i < array.length; i++) {
for(int j = 0; j < array[i].length; j++) {
if(array[i][j] % 3 == 0) {
int count = 0;
for(int n = 0; n < copyAr.length; n++) {
if(copyAr[n] == array[i][j]) {
count++;
}
}
if(count == 0) {
copyAr[copyIndex++] = array[i][j];
}
}
}
}
System.out.print("copyAr : ");
for(int i = 0; i < copyAr.length; i++) {
if(copyAr[i] != 0) {
System.out.print(copyAr[i] + "\t");
}
}
}
}