일단 해보는 코딩/Java

[Java] 변수의 타입

eun_zoey2 2022. 7. 19. 14:11
728x90
피라미터 변수란? 

    프로그램 실행에서 변수 값을 외부에서 주면서 함께 실행시키는 변수를 피라미터 변수라고 한다.

 

    변수의 타입 -  큰 자료형을 작은 자료형에 넣을 때에는 강제적 형변환 반대로 작은 자료형을 큰 자료형에 넣을 때에는 하지않는다. 

  • 문자형 - char(2Byte)
  • 숫자형 - byte(1Byte), short(2Byte), int(4Byte), long(8Byte),Integer(4Byte)
  • 실수형 - float(4Byte), double(8Byte)
  • 논리형 - boolean(True/False)
  • 문자열 -  String(8Byte)

 

변수를 사용하기 전에 C언어 처럼 선언해 주는데 자료형과 이름을 컴파일러에게 미리 알려주어서 메모리상에 저장공간을 확보해주는 효과가 있다. (<= 하지만, Python, Shell 프로그램에서는 사용하면서 선언해야한다.)

변수_명은 같은 함수 내에서 중복될 수 없다.

Java 에서 상수는 모두 대문자로 쓰며 앞에 Final~ 을 붙여서 변경할 수 없다.ex) Final PI = 3.14 

 

 

public class Test06 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		boolean b = true;
		System.out.println(b);
		System.out.println(!b); //! 붙으면 부정
		System.out.println(10>5);
		System.out.println(b==false); //A=B 는 B를 A에 대입, A==B는 A와B가 equal의미
	}
}

 

Wrapper Class 란?

    일반 변수로는 처리 할 수 없는 MAX_VALUE, parseInt,...기능을 처리 하려면 내장된 

    Integer, Double, ... 등과 같은 클래스를  불러서 사용한다. 이런 클래스를 래퍼 클래스라고 부른다. 

 

package java02;

public class Test07 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int num1 = 10;
       	 	//int num1 = 2147483648;	// 오류발생
		System.out.println(num1);
		System.out.println(Integer.MAX_VALUE); // 여기서의 Integer를 Wrapper Class 
		System.out.println(Integer.MIN_VALUE);
		System.out.println(Float.MAX_VALUE);  
		System.out.println(Float.MIN_VALUE);
		System.out.println(Double.MAX_VALUE); 
		System.out.println(Double.MIN_VALUE);
		long num2 = 2147483648L; 
		// Long타입은 8Byte로써 매우 큰 수를 표시한다. 여기에서 작은 수를 표시하기 위해서는 숫자뒤에 L을 붙여줘야 한다.
		System.out.println(num2);
		System.out.println(Integer.SIZE); //
		System.out.println(Float.SIZE); //
		System.out.println(Long.SIZE); //
			
	}

}

 

package java02;

public class Test08 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a = 100;
		String b = "200"; // 200은 문자열(숫자아님)
		System.out.println(a+b); // 100200은 + 문자열을 합치는것으로 해석 
		System.out.println(a-Integer.parseInt(b));
		//parseInt():문자열->숫자 변환해주는 매써드. 단독사용 불가, 따라서 Integer라는 Wrapper Class를 소환
		System.out.println(a*Integer.parseInt(b));
		System.out.println("---------------------");
		double num1 = 3.14;	//double 형은 충분히 3.14포함
		double num2 = Math.PI; //Wrapper Class Math에서 PI 사용
		final double PI = 3.14;	// 상수 표시 
		float num3 = 3.14f;	// 값이 Float인 것으로 표시
		float num4 = (float)3.14;	//명시적 형변환
		System.out.println(num1);
		System.out.println(num2);
		System.out.println(PI);
		System.out.println(num3);
		System.out.println(num4);
	}

}

 

쉬프트 연산자 (10진수 -> 2진수로 표현)
a = 12 00000000 00000000 00000000 00001100 a = a >> 2가 되면
             00000000 00000000 00000000 00000011(3)이 된다. 우측으로 2비트가 가고
맨 앞은 00(padding)으로 채워진다. a = a << 2가 되면 좌측으로 2비트 가고 
             00000000 00000000 00000000 00110000(48)이 된다. 

package java02;

public class Test09 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i=5, j=0;	// i와 j의 초기화
		j = j++;		// j는 계속 1씩 증가
		System.out.println(i + "," + j);
		i = 5;
		j = ++i;	//먼저 1을 더한 뒤 i를 찍는다.
		System.out.println(i + "," + j);
		int a = 3, b = 5;
		a += 3;		// a = a + 3 
		System.out.println(a);
		b /= 5;
		System.out.println(b);
		a = 12;
		a >>= 2;		//a의 값 12를 이진수로 바꿔서 우측으로 2비트 이동한 뒤 다시 십진수로 변환
		System.out.println(a);
		System.out.println("---------------------");
		int x = 65;	// ASCII 코드로 십진수 'A'의 숫자 
		char c = 'B';
		System.out.println(x);
		System.out.println(x==c);
		System.out.println(x=c);
		System.out.println(x);
		System.out.println(c);
		System.out.println('B' !=65);
	
	}

}

package java02;

public class Test10 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a = 7;
		System.out.println(a > 5 && a < 0);	// && => and : 둘 다 참
		System.out.println( a > 5 || a < 0); // || => or :  둘 중 하나만 참
	}

}

package java02;

public class Test11 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "hello " + "java";
		System.out.println(str);
		String c = "AB";
		// String str = 123 + c; 는 이미 메모리에 들어있는 str 값만 변경! <= int a=10 나중에 a=11
		str = 123 + c;
		System.out.println(str);
		System.out.println("---------------------------");
		System.out.println("---------------------------");
		System.out.println("---------------------------");
		float f = 1.6f;
		System.out.println(f);
		f = (int)100; //100f도 가능, 100.0은 오류  
		System.out.println(f);
		f = (float)100.5;	//100.5f도 가능
		System.out.println(f);
		int i = (int)f;
		// byte b = i;
		byte x = (byte)i;	// 강제 형변환
		System.out.println(i);
		System.out.println(x);
        
		}
	}

 

formating 출력

print( )와 println( ) 메써드는 서식을 지정해서 출력하게 한다.

print( ) 메써드는 ( ) 안의 내용을 출력하고, println( ) 메써드는 ( ) 안의 내용을 출력하면서 줄을 바꿔준다.

print("3")
//문자열
print("%d, 3")
//서식과 상수의 대응
print("%d는 %d보다 크다\n", 2+1, 2);
// 서식에 대응하는 값 입력

=> print(" 총점%d와 평균%f는", 87+90+78, (87+90+78)/3)

%d는 정수, %f는 실수, %c는 문자(' '), %s는 문자열(" ")을 표시한다.

여기서 "4d는 4자리 정수, %04d"는 0으로 채워서 4자리, %6.2f는 전체 6자리 소수점 이하 2자리로 표시한다.

System.out.printf("%s\t%d\t%d\t%d\t%d\t%5.2f",name,K,E,M,total,avg); //Tab 으로 간격을 만듦

 

 

package java02;

import java.util.Scanner;

public class Practice01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String name = "김철수";
		Scanner scan = new Scanner(System.in); 
				System.out.println("국어점수를 입력하세요");
				int K = scan.nextInt();
				System.out.println("영어점수를 입력하세요");
				int E = scan.nextInt();
				System.out.println("수학점수를 입력하세요");
				int M = scan.nextInt();
				int total = 0;	//덧셈에서는 초기화0; 곱셈은 1;
				double avg = 0;	// 평균은 /3이어서 실수가 나올수 있음
				total = K + E + M ;
				avg = total/3.0;
				System.out.println("이름\t국어\t영어\t수학\t총점\t평균");	
				System.out.printf("%s\t%d\t%d\t%d\t%d\t%5.2f",name,K,E,M,total,avg);
		}		
	}

'일단 해보는 코딩 > Java' 카테고리의 다른 글

[Java] 스캐너(Scanner) 예제모음  (0) 2022.07.20
[Java] 연산자 종류  (0) 2022.07.20
[Java] 변수 선언 규칙  (0) 2022.07.19
[Java] 기본문법과 형변환  (0) 2022.07.18
[Java] Java(자바)란?  (0) 2022.07.18