티스토리 뷰

 


※ 데이터 특징
  
 1)형변환 : value 존재 -->그릇안에 담긴다(타입) 
                                 기계

   100       byte, short, int , long
   1.1 


  (1) 자동 형변환 : 정해진 규칙에 따라 컴파일러가 바꿔주는 것


-> 큰 타입으로 바뀜


EX) 정수 타입 < 실수 타입

( 무조건 실수가 더 큼 )


long (8byte)< float(4byte)

-byte가 크더라도 실수가 더 큰 타입


byte+byte -> int로 바뀌어서 결과가 나옴


   - 정수/정수 --> 정수
   - 실수/정수 --> 실수  결과값에 대한 타입이 자동으로 바뀐다
   (실수->연산을 더 규칙적으로 할수 있음)


   - byte, short, char -->연산할때 int형으로 바뀜
   

package castingex;


public class CastingTest {


 public static void main(String[] args) {
      
      System.out.println(10/3);
      System.out.println(10/3.0);

System.out.println(10/(double)3);

 }

}

  



System.out.println(10/3.0);

-> 정수/실수

1) 나눗셈 보다 형 변환을 먼저 한다

2) 결과는 자동형변환이 되어 3.33333이 나온다

--> 10 = 32bit

     3.0 = 64bit

(bit 수 안 맞음)


--> 컴파일러가 10을 10.0으로 자동 형 변환

10.0/3.0 이 됨

--> 결과값 3.33333 이 나옴



(1)-1. byte


-> 파일에 있는 데이터를 읽을 때 많이 사용


byte b =128 ; ( x )

--> -128~127의 범위 이므로

short s =128 ; ( o )


s = 34567 ; ( x )

int i = 34567 ; ( o )


byte b1 = 1 ;

byte b2 = 2 ;

byte b3 = b1+b2 ; ( x )

--> cpu 가 계산 할 때 크기가 맞지않아서 계산할 수가 없다


#해결 방법 1.

int b3 = b1+b2

--> int 로 바꾸어서 계산을 함

--> 기계장치를 맞춰줌 저장한 데이터의 크기를 int로 변환하여 계산


#2.

byte b3 = (byte) (b1+b2) ;

--> 덧셈한 결과가 int 이므로 덧셈을 먼저 시켜놓은 후 그 결과를 byte 로 바꿔야 함

--> +에다가()로 묶어줌


package castingex;


public class CastingTest {

   public static void main(String[] args) {


  System.out.println('A');
  System.out.println('A'+" "+(int)'A');
  System.out.println('A'+1);
  
  System.out.println((char)('A'+1));

 // 아스키코드

 // ('A'+1)먼저 계산후 (char)문자로 변환

}

}


-> byte 끼리 연산하면 int 로 바뀜

-> char 끼리 연산하면 int 로 바뀜


(2)강제 형 변환 : 내가 바꾸는 것


-> 내 주도 하에 원하는 타입으로 바꾸는 것



   - (타입) 대상체
   -  5.6 (double) 타입->더블을 더블로 바꾸는 것은 의미가 없다
 `  - 5.6 (int) 타입 ->.6이 없어진다 소수부가 누락되고 정수만 남는다


(3) boolean


package castingex;


public class CastingTest {


boolean data = 10>3;
  //참 :true 거짓 : false
  //왼쪽에 있는 값이 항상 주어가 되어야함 => 10은 3보다 크다 (규칙)
  System.out.println("10>3 :"+data);
  data =10<3 ;
  System.out.println("10<3 :"+data);



}

}



※ 실습


#1.


변수
   정보
     1. 내정보
     2. 짝 정보
     
   이름 나이 주소
   
  1. 홍길동 23  서울시 동작구
  2. 이순신 48  충남 아산시
   
 나이합 : 71
 평균 나이 35.5



package myinfo;


public class VariableTest {

         public static void main(String[] args) {


  String name="";
  int age=0;
  String address="";
  
  name="홍길동";
  age =23;
  address = "서울시 동작구";
  
  String name2="이순신";
  int age2 = 48;
  String address2="충남 아산시";
  
  int hap = age+age2;
  double avg = hap/2.0;
  //소수점까지 계산하기위하여 double 사용
  
  System.out.println("이름\t나이\t주소");
  System.out.println(name+"\t"+age+"\t"+address);
  System.out.println(name2+"\t"+age2+"\t"+address2);
  System.out.printf("나이 합 :%d살 나이 평균:%.1f살\n",hap,avg);
  

  

}

}


#2.



책정보
 제목  작가  가격  페이지수
 1. 짝 책정보
 2. 내 정보
 3.
   세권의 가격 총계 :
          평균 가격 :



package myinfo;


public class VariableTest2 {

 public static void main(String[] args) {


    String name="";
    String writer="";
    int price=0;
    int page=0;
    
    name="해리포터";
    writer="조앤롤링";
    price=18000;
    page=430;
    
    String name2="미운오리새끼";
    String writer2="오리";
    int price2=12000;
    int page2=56;
    
    String name3="덕혜옹주";
    String writer3="조선";
    int price3=22000;
    int page3=560;

    
    int pricehap = price+price2+price3;
    double avg = (price+price2+price3)/3;
    
    System.out.println("제목\t작가\t가격\t페이지 수");
    System.out.println(name+"\t"+writer+"\t"+price+"원"+"\t"+page+"쪽");
    System.out.println(name2+"\t"+writer2+"\t"+price2+"원"+"\t"+page2+"쪽");
    System.out.println(name3+"\t"+writer3+"\t"+price3+"원"+"\t"+page3+"쪽");
    
    System.out.printf("세권의 가격 총 계:%d원 \n 평균 가격 :%.1f원",pricehap,avg);

         }

}



입력받기


-> 사용자로부터 데이터를 받아서 변수에 넣을 수 있다

1. 기능을 사용하는 메서드를 호출

2. 항상 메서드는 클래스에 있기 때문에 그 메서드가 속해 있는 클래스를 찾아야 함

3. Scanner라는 클라스에는 다른 사람으로 부터 값을 입력 받기 위한 메서드가 준비되어 있다


4. 해당 클래스를 소스안으로 불러들인다

--> import


5. 클래스를 new 키워드와 함께 등록

--> 인스턴스 생성


6. 인스턴스를 부르기 위한 이름을 하나 만들어 놓기

--> 변수 == '객체'


7. 객체를 통해서 메서드 호출

--> 객체.메서드()


8. 메서드 종류

        정수 값 입력  : nextInt()
        실수 값 입력  : nextDouble()
        단어 입력 :next()
        문자 입력 :nextLine()



package scannerex;


import java.util.Scanner;
//import 생성


public class ScannerTest {

public static void main(String[] args) {
 

 //new Scanner(); - 인스턴스 만들기
  //타입 변수 = new Scanner();
       //-Scanner 인스턴스에 이름(변수)붙임
  
  Scanner scan = new Scanner(System.in);
  // scan 이라는 키보드를 만듬
  
  System.out.println("현재 보유하고 있는 금액을 입력하세요 :");
  int don = scan.nextInt();
  //정수 int
  
  System.out.println("입력한 금액 : "+don+"원");
  
  System.out.println("좌안 시력 : ");
  double leftsight = scan.nextDouble();
  
  System.out.println("우안 시력 : ");
  double rightsight = scan.nextDouble();
  // 실수 double
  
  System.out.println("평균시력 :"+(leftsight+rightsight)/2);
  
  
  
  

     }

}




'Programing > Java' 카테고리의 다른 글

Java1 - 06. 연산자 1(operator)  (0) 2017.04.14
Java1 - 05. Scanner 활용/ Dialoginput  (0) 2017.04.13
Java1 - 03. 변수(Variable)  (0) 2017.04.12
Java1 - 02. 출력문 . 자료형 . byte  (0) 2017.04.10
Java1 - 1. 기본구조  (0) 2017.04.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함