반응형
문제
아래의 문제들을 풀어 출력하시오.
package kr.or.ddit.study02;
import java.util.Scanner;
public class VariableTest {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
VariableTest obj = new VariableTest();
obj.method1();
obj.method2();
obj.method3();
obj.method4();
obj.method5();
}
private void method1() {
// 기본타입을 각각 선언해보고 갑을 저장 할 것
// 8가지
// System.out.println 을 이용해서 출력까지 해보자.
// 정수형 byte ~
// 바이트 = 8bit 프로그램 기본단위로 많이 사용
}
private void method2() {
/*
* 각 데이터를 형변환 하고 출력 하시오.
*/
// char -> int
// int -> char
// int -> double
// int 값 변수 a,b 를 나누기 연산후 double로 저장
// char -> String
// c3_1 + c3_2 값을 문자열에 저장
char c3_1 ='a';
char c3_2 ='b';
}
private void method3() {
// Math.random
// 0~0.9999999999999999 범위 값.
// *10은 범위 값 +1은 시작 값.
// (int)(Math.random()*10)+1
// int ran = (int)(Math.random()*100)+1;
// System.out.println(ran);
/*
* 양꼬치는 1인분에 12000원 음료수는 2000원 입니다.
* 양꼬치 n개와 음료수 k 를 먹었다면 총 얼마를 지불해야 하는지
* 출력해보세요.
* n 값은 1~10
* k 값은 1~3
*/
int n = (int)(Math.random()*10)+1;
int k = (int)(Math.random()*3)+1;
//결과값 저장 할 곳
int result = ?;
}
private void method4() {
/*
* 정수 num1, num2 랜덤한 변수(1~50)로 주어질때
* num1을 num2로 나눈 나머지와 몫을 출력하세요.
*/
int num1 = (int)(Math.random()*50)+1;
int num2 = (int)(Math.random()*50)+1;
// 몫 : 정수형 데이터 이기 때문에 소수점 값 자동 생략됨.
// 나머지
}
private void method5() {
/*
* 정수 num1, num2 랜덤한 변수(1~50)로 주어질때
* num1을 num2로 나눈 값에 1000을 곱한후
* 정수 부분을 출력 하세요.
*/
int num1 = 20;//(int)(Math.random()*50)+1;
int num2 = 14;//(int)(Math.random()*50)+1;
// 소수점 3자리 출력 하도록 해볼것
int result_int =num1*1000/num2;
double result = (double)result_int/1000;
}
private void method6() {
/*
* 두 정수에 대한 연산으로 두정수를 붙여서 쓴 값을 출력합니다.
* 예를 들면 다음과 같습니다.
* a = 12, b =3
* 12 ☆ 3 = 123
* 3 ☆ 12 = 312
*
* 양의 정수 a와 b가 주어졌을때
* a ☆ b 와 b ☆ a 값중 더 큰값을 출력하세요
*/
int a = (int)(Math.random()*100)+1;
int b = (int)(Math.random()*100)+1;
}
}
정답
package kr.or.ddit.study02;
import java.util.Scanner;
public class VariableTest {
Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
VariableTest obj = new VariableTest();
obj.method1();
obj.method2();
obj.method3();
obj.method4();
obj.method5();
obj.method6();
}
private void method1() {
// 기본타입을 각각 선언해보고 갑을 저장 할 것
// 8가지
// System.out.println 을 이용해서 출력까지 해보자.
// 문자형
char cha = 'A';
System.out.println("char 타입의 값은 " + cha + "입니다.");
// 정수형 byte ~
// 바이트 = 8bit 프로그램 기본단위로 많이 사용
byte byt = 100;
System.out.println("byte 타입의 값은 " + byt + "입니다.");
short sh = 10;
System.out.println("short 타입의 값은 " + sh + "입니다.");
int in = 123;
System.out.println("int 타입의 값은 " + in + "입니다.");
long lon = 100000000L;
System.out.println("long 타입의 값은 " + lon + "입니다.");
// 실수형
double dou = 12.234;
System.out.println("double 타입의 값은 " + dou + "입니다.");
float flo = 56.78910f;
System.out.println("float 타입의 값은 " + flo + "입니다.");
// 논리
boolean boo = true;
System.out.println("boolean 타입의 값은 " + boo + "입니다.");
}
private void method2() {
/*
* 각 데이터를 형변환 하고 출력 하시오.
*/
// char -> int
char ch = 'A';
int in = ch;
System.out.println("char을 int로 형변환한 값은 " + in);
// int -> char
in = 66;
ch = (char)in;
System.out.println("int을 char로 형변환한 값은 " + ch);
// int -> double
in = 67;
double dou = in;
System.out.println("int을 double로 형변환한 값은 " + dou);
// int 값 변수 a,b 를 나누기 연산후 double로 저장
int a = 16;
int b = 7;
double result = (double)a/(double)b;
System.out.println("int 값 변수 a,b 를 나누기 후 연산된 값은 " + result);
// char -> String
ch = 'D';
String str = String.valueOf(ch);
System.out.println("char을 String로 형변환한 값은 " + ch);
// c3_1 + c3_2 값을 문자열에 저장
char c3_1 ='a';
char c3_2 ='b';
str = "" + c3_1 + c3_2;
// str = String.valueOf(c3_1);
// str += String.valueOf(c3_2);
System.out.println("c3_1과 c3_2의 문자열을 저장한 값은 " + str);
// String -> char
String s4 = "abc";
char c4_1 = s4.charAt(0);
char c4_2 = s4.charAt(1);
char c4_3 = s4.charAt(2);
}
private void method3() {
// Math.random
// 0~0.9999999999999999 범위 값.
// *10은 범위 값 +1은 시작 값.
// (int)(Math.random()*10)+1 // 0부터 9까지에 +1 해서 1부터 10까지의 범위가 된다.
// int ran = (int)(Math.random()*100)+1;
// System.out.println(ran);
/*
* 양꼬치는 1인분에 12000원 음료수는 2000원 입니다.
* 양꼬치 n개와 음료수 k 를 먹었다면 총 얼마를 지불해야 하는지
* 출력해보세요.
* n 값은 1~10
* k 값은 1~3
*/
int n = (int)(Math.random()*10)+1; // 1에서 10까지의 범위
int k = (int)(Math.random()*3)+1; // 1에서 3까지의 범위
//결과값 저장 할 곳
int result = n*12000 + k*2000;
System.out.println("양꼬치 " + n + "개와 음료수 " + k + "개를 먹었다.");
System.out.println("총 가격은 " + result + "이다.");
}
private void method4() {
/*
* 정수 num1, num2 랜덤한 변수(1~50)로 주어질때
* num1을 num2로 나눈 나머지와 몫을 출력하세요.
*/
int num1 = (int)(Math.random()*50)+1;
int num2 = (int)(Math.random()*50)+1;
// 몫 : 정수형 데이터 이기 때문에 소수점 값 자동 생략됨.
int share = num1/num2;
System.out.println(num1 + " 나누기 " + num2 + "의 몫은 " + share + "이다.");
// 나머지
int remain = (num1%num2);
System.out.println("나머지는 " + remain + "이다.");
// System.out.printf("num1 : %d , num2 : %d\n", num1, num2);
// System.out.printf("몫은 : %d , 나머지는 : %d\n", share, remain);
}
private void method5() {
/*
* 정수 num1, num2 랜덤한 변수(1~50)로 주어질때
* num1을 num2로 나눈 값에 1000을 곱한후
* 정수 부분을 출력 하세요.
*/
int num1 = (int)(Math.random()*50)+1;
int num2 = (int)(Math.random()*50)+1;
double resultNum = ((double)num1 / (double)num2) *1000;
int resultNu = (int)resultNum;
// int result = num1*1000/num2; // 한줄로 바꾼다면 아래와 같다.
System.out.println("정수 num1의 값은 " + num1 + ", 정수 num2의 값은 " + num2);
System.out.println("나눈 후 1000을 곱한 정수 부분의 값은 " + resultNu + "이다.");
// 소수점 3자리 출력 하도록 해볼것
int result_int =num1*1000/num2; // 1428
double result = (double)result_int/1000; //1.428
result_int = result_int/1000 * 1000;
result *= 1000;
result_int = (int)result - result_int;
result = result_int / 1000.0;
System.out.println("소수점 3자리는 " + result + "이다.");
}
private void method6() {
/*
* 두 정수에 대한 연산으로 두정수를 붙여서 쓴 값을 출력합니다.
* 예를 들면 다음과 같습니다.
* a = 12, b =3
* 12 ☆ 3 = 123
* 3 ☆ 12 = 312
*
* 양의 정수 a와 b가 주어졌을때
* a ☆ b 와 b ☆ a 값중 더 큰값을 출력하세요
*/
int a = (int)(Math.random()*100)+1;
int b = (int)(Math.random()*100)+1;
String ab = "" + a + b;
String ba = "" + b + a;
int ab_int = Integer.valueOf(ab);
int ba_int = Integer.valueOf(ba);
int result = ab_int > ba_int ? ab_int : ba_int;
System.out.printf("a의 값은 %d, b의 값은 %d\n", a, b);
System.out.println("더 큰 값은 " + result);
}
}
반응형
'자바' 카테고리의 다른 글
[Java 초급] 6.5장 테스트 (0) | 2023.12.08 |
---|---|
[Java 초급] 6장 조건문 (0) | 2023.12.07 |
[Java 초급] 5.5.1장 테스트 (0) | 2023.12.06 |
[Java 초급] 5장 단항, 이항, 삼항 연산자 (0) | 2023.12.06 |
[Java 초급] 4.5장 테스트 (2) | 2023.12.06 |