프로그래밍/Java
Java 3일차 - 구구단, 형변환, Calendar, Date, OverLoading, equals, try~catch 연습문제
비전공개미
2022. 9. 20. 18:11
반응형
SMALL
//Array.java
package net.bit.day20;
public class Array {
public static void main(String[] args) {
// int[] avg = new int[3];
// int avg = 34; //변수의 초기화
// int[] array = { 7, 8, 9 }; //배열의 초기화
// System.out.println(avg[3]);
}
}
//DateCal.java
package net.bit.day20;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Random;
import java.util.random.*;
public class DateCal {
public static void main(String[] args) {
Date dt = new Date(); //맞음
//Calendar cal = new Calendar(); //오류
Calendar cal = Calendar.getInstance(); //맞음
Calendar gre = new GregorianCalendar(); //맞음
Random r = new Random();
int su = r.nextInt(100);
System.out.println(su);
double d = Math.random();
System.out.println(d);
}
}
[출력]
49
0.45087805978912443
//Gugudan.java
package net.bit.day20;
import java.util.Scanner;
public class Gugudan {
public static void main(String[] args) {
//문제1 dan데이터값을 키보드에서 입력받기
//문제2 input() 리턴값o, 매개인자x => Scanner클래스 입력만
//문제3 output() 리턴값x, 매개인자o => for반복문으로 출력
//문제4 main함수에서 input(), output() 호출
Gugudan gu = new Gugudan();
int numb = gu.input();
gu.output(numb);
}
//int, String은 형에 맞게 return값을 반환해줘야 한다.
public int input() {
Scanner in = new Scanner(System.in);
System.out.print("단을 입력해주세요 > ");
int dan = in.nextInt();
in.close();
return dan;
}
//void는 return값을 반환하지 않는다.
public void output(int num) {
for (int i=1; i<10; i++) {
System.out.println(num + "*" + i + "=" + (num*i));
}
}
}
[출력]
단을 입력해주세요 > 7
7*1=7
7*2=14
7*3=21
7*4=28
7*5=35
7*6=42
7*7=49
7*8=56
7*9=63
//Gugudan_teacher.java
package net.bit.day20;
import java.util.Scanner;
public class Gugudan_teacher {
public static void main(String[] args) {
Gugudan_teacher gg = new Gugudan_teacher();
int ret = gg.input();
gg.output(ret);
}
public int input() {
Scanner sc = new Scanner(System.in);
System.out.print("단 입력 > ");
int dan = sc.nextInt();
sc.close();
return dan;
}
public void output(int dan) {
for (int i=1; i<10; i++) {
System.out.println(dan + "*" + i + "=" + (dan*i));
}
}
}
[출력]
단 입력 > 8
8*1=8
8*2=16
8*3=24
8*4=32
8*5=40
8*6=48
8*7=56
8*8=64
8*9=72
//Test01.java
package net.bit.day20;
public class Test01 {
public static void main(String[] args) {
double avg = 78.9;
int a = (int)avg;
//표준데이터타입 = 컴파일시 자동해석 = primitive type int
//표준타입 int, double, float, boolean, char, byte 기본타입
//포장클래스 Integer, Long, Double, Float, Boolean, Character, Byte
//참조타입 - 클래스, interface 참조를 표준타입으로 변환할때
//wrapper class(포장클래스)를 사용해야 한다.
String data = "78";
int b = Integer.parseInt(data);
double c = Double.parseDouble(data);
System.out.println(data + 100.0); //78100.0
System.out.println(b + 100); //178
System.out.println(c + 100.0); //178.0
}
}
[출력]
78100.0
178
178.0
//Test02.java
package net.bit.day20;
import java.util.Random;
public class Test02 {
public static void main(String[] args) {
Random r = new Random();
for (int i=0; i<3; i++) {
int num = r.nextInt(1,6); //1에서 6
System.out.println(num);
}
double a = Math.random();
double b = Math.random();
double c = Math.random();
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
[출력]
5
2
2
0.6036015180364369
0.11026450842748081
0.28971419229714146
//Test03.java
package net.bit.day20;
public class Test03 {
public static void main(String[] args) {
//String a = new String(); //명시적인 개체화=new키워드사용
String a = new String("com");
String b = "com"; //묵시적인 개체화=new키워드사용x
//a와 b의 주소값이 같은지 확인
if(a == b) {
System.out.println("일치");
}else {
System.out.println("불일치");
}
//a와 b의 내용이 같은지 확인
if(a.equals(b)) {
System.out.println("같다");
}else {
System.out.println("다르다");
}
String c = "com"; //묵시적인 개체화
String d = "com";
if(c.equals(d)) { //변수의 내용확인
System.out.println("같다");
}else {
System.out.println("다르다");
}
String e = new String("com"); //명시적인 개체화
String f = new String("com");
if(e == f) { //주소값확인
System.out.println("같다");
}else {
System.out.println("다르다");
}
}
}
[출력]
불일치
같다
같다
다르다
//TestOverLoading.java
package net.bit.day20;
public class TestOverLoading {
public static void main(String[] args) {
cal();
cal(1.5, 2, 3);
cal(2.5, 3.0);
cal("길동", "27");
}
//115페이지 함수이름 동일 OverLoading=오버로딩
public static void cal() {
System.out.println("cal함수");
}
public static void cal(double a, int b, int c) {
System.out.println(a + b + c);
}
public static void cal(double a, double b) {
System.out.println(a + b);
}
public static void cal(String msg, String age) {
System.out.println(msg + "의 나이는 " + age);
}
}
[출력]
cal함수
6.5
5.5
길동의 나이는 27
//Trycatch.java
package net.bit.day20;
public class Trycatch {
public static void main(String[] args) {
int[] array = {7, 8, 9};
try {
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]); //<=에러발생 건너뛰고 내려간다
}catch(Exception ex) {
// System.err.println(ex); //에러출력
System.out.println();
System.out.println("우리");
System.out.println("나라");
System.out.println("만세");
}
}
}
[출력]
7
8
9
우리
나라
만세
//Trycatch2.java
package net.bit.day20;
public class Trycatch2 {
public static void main(String[] args) {
//int[] camp = new int[3]; //int타입 초기값 0
//boolean[] camp = new boolean[3]; //boolean타입 초기값 false
double[] camp = new double[3]; //double타입 초기값 0.0
//String[] camp = new String[3]; //클래스타입 초기값 null
//Gugudan[] camp = new Gugudan[3];
try {
System.out.println(camp[0]);
System.out.println(camp[1]);
System.out.println(camp[2]);
}catch(Exception ex) {
System.out.println("에러이유 : " + ex);
System.out.println();
System.out.println("우리");
System.out.println("나라");
System.out.println("만세");
}
}
}
[출력]
0.0
0.0
0.0
//Trycatch3.java
package net.bit.day20;
public class Trycatch3 {
public static void main(String[] args) {
//int[] array = { 7, 8, 9 };
int[] camp= new int[3]; //int타입 초기값 0
//boolean[] camp = new boolean[3]; //boolean타입 초기값 false
//double[] camp = new double[3]; //double타입 초기값 0.0
//String[] camp = new String[3]; //클래스타입 초기값 null
camp[0]=77;
camp[1]=88;
camp[2]=99;
System.out.println(camp[0]);
System.out.println(camp[1]);
System.out.println(camp[2]);
System.out.println();
System.out.println("우리나라");
System.out.println("대한민국");
System.out.println("화려강산");
}
}
[출력]
77
88
99
우리나라
대한민국
화려강산
//Trycatch4
package net.bit.day20;
import java.util.Scanner;
public class Trycatch4 {
public static void main(String[] args) {
//3개의 값을 입력받고 출력 / 숫자가 아닐시 재시도
Scanner sc = new Scanner(System.in);
int[] camp = new int[3]; //int타입 초기값 0
int i = 0;
while(true) {
try {
System.out.print("camp["+ i +"]번째 배열값입력 > ");
// camp[i] = sc.nextInt(); //문자나 소수점을 입력하면 무한루프가 돈다
camp[i] = Integer.parseInt(sc.nextLine()); //권장
i++;
if(i == camp.length) {
break;
}
}catch(Exception ex) {
System.out.println("\n다시입력해주세요 > ");
continue;
}
}
for (int j=0; j<camp.length; j++) {
System.out.println(camp[j]);
}
//
// System.out.println();
// System.out.println("우리");
// System.out.println("나라");
// System.out.println("만세");
sc.close();
}
}
[출력]
camp[0]번째 배열값입력 > 1
camp[1]번째 배열값입력 > a
다시입력해주세요 >
camp[1]번째 배열값입력 > 2
camp[2]번째 배열값입력 > kim
다시입력해주세요 >
camp[2]번째 배열값입력 > 3
1
2
3
//TestString.java
package net.bit.day20;
import java.util.Scanner;
import java.util.Calendar;
public class TestString {
public static void main(String[] args) {
while(true) {
try {
Scanner sc = new Scanner(System.in);
Calendar cal = Calendar.getInstance();
//현재년도 구하기
int nowYear = cal.get(Calendar.YEAR);
int nowYear1 = nowYear + 1;
//주민번호 입력하기
System.out.print("주민번호 입력 -포함 > ");
//ex)841230-1790563
String jumin = sc.nextLine();
String[] jumins = jumin.split("-");
String jumin1 = jumins[0];
String jumin2 = jumins[1];
//주민번호 앞두자리 추출
String birth = jumin1.substring(0, 2);
String birthMonth = jumin1.substring(2,4);
String birthDay = jumin1.substring(4,6);
//주민번호 뒤한자리 추출
String gender1 = jumin2.substring(0, 1);
int gender2 = Integer.parseInt(gender1);
// char gender1 = jumin2.charAt(0);
// int gender2 = Character.getNumericValue(gender1);
String birthYear = "";
String genders = "";
int birthYear1 = 0;
int birthage = 0;
switch(gender2) {
case 1:
birthYear = "19" + birth;
birthYear1 = Integer.parseInt(birthYear);
birthage = nowYear1 - birthYear1;
genders = "남자";
break;
case 2:
birthYear = "19" + birth;
birthYear1 = Integer.parseInt(birthYear);
birthage = nowYear1 - birthYear1;
genders = "여자";
break;
case 3:
birthYear = "20" + birth;
birthYear1 = Integer.parseInt(birthYear);
birthage = nowYear1 - birthYear1;
genders = "남자";
break;
case 4:
birthYear = "20" + birth;
birthYear1 = Integer.parseInt(birthYear);
birthage = nowYear1 - birthYear1;
genders = "여자";
break;
default:
break;
}
System.out.println(birthYear + "년 " + birthMonth +"월 "+ birthDay+"일생,"+ " 나이는" + birthage + ", 성별은 " + genders + "입니다.");
sc.close();
break;
}catch(Exception e) {
System.out.println("형식에 맞게 입력해주세요.");
continue;
}
}
}
}
[출력]
주민번호 입력 -포함 > 8501011245789
형식에 맞게 입력해주세요.
주민번호 입력 -포함 > 850101-1245789
1985년 01월 01일생, 나이는38, 성별은 남자입니다.
(보완이 좀 더 필요함...)
반응형
LIST