피라미터 변수란?
프로그램 실행에서 변수 값을 외부에서 주면서 함께 실행시키는 변수를 피라미터 변수라고 한다.
변수의 타입 - 큰 자료형을 작은 자료형에 넣을 때에는 강제적 형변환 반대로 작은 자료형을 큰 자료형에 넣을 때에는 하지않는다.
- 문자형 - 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 |