package day0616;
public class ParseIntArg_01 {
public static void main(String[] args) {
/*[결과출력]
* 내이름은 김영환
* 자바점수는 88
* 오라클점수는 77
* 두과목의 합계는 165점 입니다*/
/* 선생님
String name=args[0];
int java=Integer.parseInt(args[1]);
int oracle=Integer.parseInt(args[2]);
//출력
System.out.println("[결과출력]");
System.out.println("내이름은 "+name);
System.out.println("자바점수는 "+java);
System.out.println("오라클점수는 "+oracle);
System.out.println("두과목의 합계는 "+(java+oracle)+"점 입니다");
*/
//변수선언
//계산
//출력
//순서로 로직 짜는 법 연습
int num1=Integer.parseInt(args[1]);
int num2=Integer.parseInt(args[2]);
System.out.println("[결과출력]");
System.out.println("내이름은 "+args[0]);
System.out.println("자바점수는 "+args[1]);
System.out.println("오라클점수는 "+args[2]);
System.out.println("두과목의 합계는 "+(num1+num2)+"점 입니다");
}
}
String타입을 int타입으로 변경
int 변수=Integer.parseInt(String 변수);
package day0616;
public class ParseNum_02 {
public static void main(String[] args) {
//String타입을 int타입으로 변경하려면
//Integer.parseInt("10"); 문자열 1이 정수1로 변환
//Integer(래퍼 클래스) <- parseInt를 사용하기 위해
//Integer.parseInt 외우기
//Double.parseDouble("12.23"); 문자열 12.23이 실수타입의 12.23으로 반환
String num1="200";
String num2="7";
System.out.println("두수 더하기: "+(num1+num2));
//문자열num1,num2를 정수타입 int 로 변환 후 계산
int su1=Integer.parseInt(num1);
int su2=Integer.parseInt(num2);
System.out.println("변환 후 두 수 더하기: "+(su1+su2));
System.out.println("변환 후 두 수 빼기:"+(su1-su2));
System.out.println("변환 후 두 수 곱하기"+(su1*su2));
System.out.println("변환 후 두 수 나누기"+(su1/su2)); //정수형끼리 연산시 결과도 정수형
}
}
package day0616;
public class ParseArgs_04 {
public static void main(String[] args) {
/* main에서 실행할때 args로 변수 넘기는 문제
* 변수명: sangName, su, dan, total
*
* 1.변수선언
* 2.계산
* 3.출력
*
* [상품정보]
* 상품명: 갤럭시폴드
* 수량: 5개
* 단가: 800000 원
* 총금액: 40000000원*/
String sangName=args[0];
int su=Integer.parseInt(args[1]);
int dan=Integer.parseInt(args[2]);
int total=su*dan;
System.out.println("[상품정보]");
System.out.println("상품명: "+sangName);
System.out.println("수량: "+su+"개");
System.out.println("단가: "+dan+" 원");
System.out.println("총금액: "+total+"원");
}
}
%d는 정수
%f는 실수
%s는 문자열
전체자리수 10자리 소수점2자리
System.out.printf("d=%10.2f\n",d);
=> 앞에 10자리가 안되서 공백 숫자.소수점 /\n을 안하면 밑에 printf까지 1줄에 다 나와서 추가
소수점1자리
System.out.printf("d=%.1f",d); //소수점1자리 뒤 숫자는 반올림
System.out.printf("num1의 값은 %d,num2의 값은 %d,num3의 값은 %d입니다",num1,num2,num3);
package day0616;
public class PrintfTest_05 {
public static void main(String[] args) {
//Printf는 문자열을 구성해서 출력
//문자열("")뒤에 따라오는 데이터(%)를 순서대로 배치
//%d는 정수 %f는 실수 %s는 문자열
//같은 자료형을 공유할때는 옆에 같이 쓰기도함
int num1=10,num2=20;
int num3=num1+num2;
System.out.println(num1+"+"+num2+"="+num3);
//printf로 출력 ("%d",정수) ("%d,%d",정수1,정수2)
System.out.printf("num1의 값은 %d,num2의 값은 %d,num3의 값은 %d입니다",num1,num2,num3);
}
}
package day0616;
public class PrintfTest_06 {
public static void main(String[] args) {
//%d는 정수 %f는 실수 %s는 문자열
//printf 1개로 출력하세요
//안녕하세요 제이름은 송혜교입니다
//나이는 25세입니다
String name="송혜교";
int age=25;
//("%s %d",name, age) % 순서대로 뒤 1번째자리부터 대입
System.out.printf("안녕하세요 제이름은 %s입니다 \n나이는 %d세입니다",name,age);
}
}
1.논리형_true,false
boolean b=false; //boolean flag도 자주 사용/주 사용
2.문자형
반드시 하나의 문자 16비트 유니코드값 표현
자바에서는 char 문자하나만 2바이트=한글 한 글자
c언어에서는 char 1바이트라 한글 불가
기본적으로는 정수형, 아스키코드
char ch='A';
3.정수형
byte a=-128; //1바이트 -128~127까지 가능 -129로 내려가면 127이됨
short s=32000; //16bit
int c=670000; //32bit 주 사용
long num=100L; //64bit 숫자 맨 뒤에 L 혹은 l을 붙여야 long 안붙이면 int
4.실수형
double d=42356.14526; //64bit,소수점,기본 평균 구할 때 주로 씀 / 주 사용
float f=3.1234567f; //32bit 숫자 맨 뒤에 f를 붙여야 float 안 붙이면 double
package day0616;
public class OperTest_07 {
public static void main(String[] args) {
//기본자료형_8개
//1.논리형_true,false
boolean b=false; //boolean flag도 자주 사용/주 사용
//2.문자형
//반드시 하나의 문자 16비트 유니코드값 표현
//자바에서는 char 문자하나만 2바이트=한글 한 글자 /c언어에서는 char 1바이트라 한글 불가
//기본적으로는 정수형, 아스키코드
char ch='A';
//3.정수형
byte a=-128; //1바이트 -128~127까지 가능 -129로 내려가면 127이됨
short s=32000; //16bit
int c=670000; //32bit 주 사용
long num=100L; //64bit 숫자 맨 뒤에 L 혹은 l을 붙여야 long 안붙이면 int
//4.실수형
double d=42356.14526; //64bit,소수점,기본 평균 구할 때 주로 씀 / 주 사용
float f=3.1234567f; //32bit 숫자 맨 뒤에 f를 붙여야 float 안 붙이면 double
//int,float는 똑같이 32bit사용하지만 기본적으로 실수형이 정수형보다 큰 타입으로 처리 (int < float)
//출력
System.out.println("bool="+b);
System.out.println("not bool="+!b);
System.out.println("ch="+ch); //아스키코드 65
System.out.println("ch="+(ch+1)); //아스키코드 66
System.out.println("ch="+(char)(ch+1)); //B char 형변환
System.out.println("d="+d); //정밀도 15자리
System.out.println("f="+f); //정밀도 8자리
//printf %f:실수
//전체자리수 10자리 소수점2자리
System.out.printf("d=%10.2f\n",d); //앞에 10자리가 안되서 공백 숫자.소수점 /\n을 안하면 밑에 printf까지 1줄에 다 나와서 추가
//소수점1자리
System.out.printf("d=%.1f",d); //소수점1자리 뒤 숫자는 반올림
}
}
int x=7;
int y=4;
x/y
정수형끼리의 계산결과는 무조건 int타입
(double)x/y
x/(double)y
계산시 x를 double로 변환해서 계산
=>결과는 double / 정수 중 하나만 double이 되도 double값
강제형변환 안해줘도 형변환되는건 묵시적 강제형변환
오류가 나면 강제 형변환해주면 됨
double d=100.0;
int i=100;
int result=(int)d+i; //왼쪽이 작은 값이고 오른쪽이 큰 값일 때 강제 형변환
double result2=(double)d+i; //왼쪽이 큰 값이면 형변환 안해줘도 되지만 해줘도 됨
package day0616;
public class DataType_08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
byte a=127; //-128~127
byte b=(byte)128; //더 작은 자료형으로의 변환(디모션_보이지 않는 아주 적은 값손실)/ 강제 형변환
System.out.println("a="+a);
System.out.println("b="+b); //128은 byte의 범위를 벗어나 다음 값 출력 128 -> -128
int x=7;
int y=4;
System.out.println(x/y); //정수형끼리의 계산결과는 무조건 int타입
System.out.println((double)x/y); //계산시 x를 double로 변환해서 계산 : 결과는 double / 정수 중 하나만 double이 되도 double값
System.out.println(x/(double)y);
//강제형변환 안해줘도 형변환되는건 묵시적 강제형변환
//오류가 나면 강제 형변환해주면 됨
double d=100.0;
int i=100;
int result=(int)d+i; //왼쪽이 작은 값이고 오른쪽이 큰 값일 때 강제 형변환
double result2=(double)d+i; //왼쪽이 큰 값이면 형변환 안해줘도 되지만 해줘도 됨
System.out.println("d="+d);
System.out.println("i="+i);
System.out.println("result="+result);
System.out.println("result2="+result2);
}
}
묵시적 형변환: 자동결정되는 타입
캐스트 연산자
String+int=String
double+int=double
long+short=long
char+int=int
package day0616;
public class DataType_09 {
public static void main(String[] args) {
// 묵시적 형변환: 자동결정되는 타입
//캐스트 연산자
//String+int=String
//double+int=double
//long+short=long
//char+int=int
char a='a';
System.out.println(a);
System.out.println(a+2);
System.out.println((char)(a+2)); //char+int=int
System.out.println("Happy"+5+6); //String+int=String 앞부터 더해짐
System.out.println("Happy"+(5+6)); //()먼저 계산
System.out.println('A'+3); //A의 아스키코드값65+3=68
System.out.println(2+'b'); //2+b의 아스키코드값 98=100
System.out.println('a'+'b'); //a의 아스키코드값97+b의 아스키코드값98 / 연산할때 문자는 기본이 정수
// 문자 그대로 보려면 앞에 (char)강제형변환
System.out.println('a');
}
}
package day0616;
public class QuizDataType_10 {
public static void main(String[] args) {
/* 매개변수(args)를 이용하여 출력해보세요
* [시험결과]
* Java=88,Jsp=77,Spring=99
* 총점: 264 점
* 평균: 88.00 점*/
int num1=Integer.parseInt(args[0]);
int num2=Integer.parseInt(args[1]);
int num3=Integer.parseInt(args[2]);
int total=num1+num2+num3;
double split=total/3;
System.out.println("[시험결과]");
System.out.printf("Jave =%d, Jsp=%d, Spring=%d\n",num1,num2,num3);
System.out.printf("총점: %d점\n",total);
System.out.printf("평균: %.2f점",split);
/* 선생님
int java=Integer.parseInt(args[0]);
int jsp=Integer.parseInt(args[1]);
int spring=Integer.parseInt(args[2]);
int count=3; //3과목을 의미하는 변수
int tot=java+jsp+spring;
double avg1=tot/count; //결과가 무조건 int
double avg2=(double)tot/count; //결과가 double
//출력
System.out.printf("java=%d, jsp=%d, spring%d\n",java,jsp,spring);
System.out.println("총점: "+tot+"점");
System.out.printf("평균: %.2f",avg1);
*/
}
}
클래스명 마음대로(참조변수)=새로생성 클래스명();
Date date=new Date(); //99퍼센트 사용
Calendar cal=Calendar.getInstance();
=>만들어진 Instance를 받아서 사용 //구글에 Calendar import 검색
package day0616;
import java.util.Calendar;
import java.util.Date;
public class CalendarTest_11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Date date=new Date(); //99퍼센트 사용
// 클래스명 마음대로(참조변수)=새로생성 클래스명();
//System.out.println("지금은 "+(date.getYear()+1900));//-그어진건 지금은 안쓴다
Calendar cal=Calendar.getInstance(); //만들어진 Instance를 받아서 사용 //구글에 Calendar import 검색
System.out.println("지금은 "+cal.get(cal.YEAR)+"년도입니다");
System.out.println("지금은 "+(cal.get(cal.MONTH)+1)+"월 입니다"); //month는 무조건 1 더해줘야함
System.out.println("지금은 "+cal.get(cal.DATE)+"일 입니다");
System.out.println("지금은 "+cal.get(cal.DAY_OF_MONTH)+"일 입니다");
System.out.println("시간: "+cal.get(cal.HOUR_OF_DAY)+"시 "+
cal.get(cal.MINUTE)+"분 "+cal.get(cal.SECOND)+"초");
}
}
package day0616;
import java.util.Calendar;
public class MyAge_12 {
public static void main(String[] args) {
// 매개변수 args에서 실행시 이름과 태어난 연도를 보낸 후 출력하세요 (name,myBirth)
// 이름: 최성현
// 태어난 연도: 1995년도
// 나이: 29세
//현재년도는 Calendar import하여 구할 수 있다
Calendar day=Calendar.getInstance();
String name=args[0];
int myBirth=Integer.parseInt(args[1]);
System.out.println("이름: "+name);
System.out.println("태어난 연도: "+myBirth+"년도");
System.out.println("나이: "+(day.get(day.YEAR)-myBirth)+"세");
/* 선생님
//1.import
Calendar calendar=Calendar.getInstance();
//2.변수
String name=args[0];
int myBirth=Integer.parseInt(arg[1]);
int curYear=calendar.get(calendar.YEAR); //현재년도
//3.계산
int myAge=curYear-myBirth;
//4.출력
System.out.println("이름 "+name);
System.out.println("태어난 연도: "+myBirth+"년생");
System.out.println("나이: "+myAge+"세");
*/
}
}
package day0616;
public class Book69 {
public static void main(String[] args) {
int value=123;
System.out.printf("상품의 가격:%d원\n",value);
System.out.printf("상품의 가격:%6d원\n",value);
System.out.printf("상품의 가격:%-6d원\n",value);
double area=3.14159*10*10;
System.out.printf("반지름이 %d인 원의 넓이:%10.2f\n",10,area);
String name= "홍길동";
String job= "도적";
System.out.printf("%6d | %-10s | %10s\n", 1, name, job);
}
}
package day0616;
public class VarTest_01 {
public static void main(String[] args) {
//10진수의 정수의 저장을 위한 메모리공간을 할당하겠다
//그 메모리공간의 이름을 num이라 하겠음
//int 변수의 특성을 결정짓는 키워드를 자료형이라 한다 //키워드 변수명 불가
int num1;
num1=100;
int num2=200;
int num3=num1+num2;
System.out.println(num1+"+"+num2+"="+num3);
}
}