args 매개변수 문제

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)+"점 입니다");
	}

}

Integer.parseInt/연산

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)); //정수형끼리 연산시 결과도 정수형	
	}

}

args 연산

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+"원");
		

	}

}

printf

%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);
		

	}

}

printf 문제

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자리 뒤 숫자는 반올림
	}

}

자료형2

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);

	}

}

자료형3/아스키코드

묵시적 형변환: 자동결정되는 타입

캐스트 연산자
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);
		*/
		

	}

}

클래스 import

  1. 클래스명 마음대로(참조변수)=새로생성 클래스명();
    Date date=new Date(); //99퍼센트 사용

  2. 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)+"초");
		
	}

}

calendar 문제

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);
		
	}

}
profile
백엔드 개발자로서 성장해 나가는 성현이의 블로그~

0개의 댓글