Chapter 02. 변수
데이터의 종류
* 정수 : 10, -10
* 실수 : 3.14, -1.8
* 문자 : 'a', '가', '1'
* 논리 : true, false
프로그래밍 언어의 기준으로 데이터의 종류를 나눠놓은 것
:자료형 (data type)
기본형 타입 (괄호 안에는 자료형의 크기 bytes)
*정수 : byte(1), short(2), int(4), long(8)
* 실수 : float(4), double(8)
* 문자 : char(2)
* 논리 : boolean(1)
변수를 만들 때 타입을 사용한다.
데이터를 다룰 때 일반적으로 변수라는 그릇에 담아서 사용한다.
변수 : 하나의 데이터를 담을 수 있는 그릇
int age; //변수 선언 : 변수를 만드는 곳
double pi;
double pi; //한 블럭 안에서 변수의 이름은 중복될 수 없다.
int 국어, 영어, 수학; //한글로 변수 선언할 수 있지만 하지않음
int kor, eng, math;
int scoreAgv; //낙타표기법
int score_total; //뱀표기법
대입연산자
오른쪽의 값을 왼쪽 변수에 저장
age = 20 + 10; //초기화 : 변수에 처음으로 값을 입력함
age = "20"; //변수의 타입에 맞는 값을 저장해야한다.
int abc = 10;//보통 선언과 초기화를 동시에 한다.
long l = 40l; //접미사 L(l)을 붙여야 long타입이 된다.
float f = 50f; //접미사 F(f)를 붙여야 float타입이 된다.
char c = '한'; //작은따옴표 안에 한 글자만 넣어야한다.
boolean b = true; //true, false
//8가지 기본형 타입을 사용해서 8개의 변수를 선언 및 초기화해주세요.
byte _byte = 127;
short _short = 20;
int _int = 50;
long _long = 100l;
float _float = 1.8f;
double _double = 4.5;
char _char = 'a';
boolean _boolean = true;
System.out.println(_byte);
_byte++;
System.out.println(_byte);//오버플로우
int vA = 1, vB = 2, vC = 3; //여러 변수를 한 번에 선언하고 초기화함.
형변환
int small = 10;
long big = 10l;
small = (int)big;
big = small;
//표현 범위가 작은 쪽에서 큰 쪽으로의 형변환은 생략이 가능하다.
*상수
* 처음 담긴 값을 변경할 수 없는 그릇
* 리터럴에 의미를 부여하기 위해 사용
final int MAX_NUMBER;
MAX_NUMBER = 10;
// MAX_NUMBER = 20; // 컴파일 에러 발생
출력
// System.out.println("줄바꿈을 한다.");
// print 뒤에 ln이 붙으면 출력 후 줄바꿈이 된다.
// Line New
// System.out.print("줄바꿈을 하지 않는다.");
// System.out.print("줄바꿈을 하지 않는다.");
// System.out.println("줄바꿈!");
// age = 26;
// System.out.println("나이 : " + age);
// System.out.println(age + age + "입니다.");
//System.out.println("나이는" + age + "입니다.");
// System.out.printf("나이는 %1d 입니다.", age);
//print 뒤에 f가 붙으면 format을 입력해줘야한다.
***printf 에서 문자열에 포함될 값이 2개 이상일 경우에는 값의 순번을 알려주어야 한다
1$는 첫번째 값을 2$는 두 번째 값을 뜻한다.
====>System.out.printf("이름: %1s", 나이: %2d", "김자바", 25); => 김자바, 나이: 25
입력
* System.out.println();
* System.out.print("아무거나 입력해주세요 : ");
* String str = sc.nextLine();
* System.out.printf("'%s'를 입력하셨습니다.", str);
//입력을 받게되면 사용자가 입력할 때 프로그램이 멈추게 된다.
//내용을 입력 후 엔터를 치면 입력이 종료되고 프로그램이 다시 진행된다.
System.out.print("숫자를 입력해주세요 : ");
double num = sc.nextDouble();
//숫자를 입력받을 수 있지만 버그로 인해 사용하지 않는다.
/숫자를 입력받고 싶을 때
// String input = sc.nextLine();
// int iInput = Integer.parseInt(input);
// System.out.printf("%d를 입력하셨습니다.", iInput);
// 자신의 이름과 나이를 입력받아 변수를 선언 및 초기화하고 출력하세요.
// 출력 예 :
// 이름 : 홍길동, 현재 나이 : 20세, 내년 나이 : 21세
System.out.println();
System.out.print("이름 : ");
System.out.print("이름 : 룰루랄라");
System.out.print(", 현재 나이 : " +age);
System.out.print(", 내년 나이 : ", age + 1);
Scanner sc = new Scanner(System.in);
System.out.println("이름 입력 >> ");
String Name = sc.nextLine();
// syso + ctrl + space bar : System.out.println 자동완성
System.out.println("나이 입력 >>");
int inputage = Integer.parseInt(sc.nextLine());
System.out.printf("이름 : %s, 현재 나이 : %d세, 내년 나이 : %d세", Name, inputage, inputage + 1);
sc.close();
String str = sc.nextLine();
Integer.parseInt(str); // 입력받은 값을 정수(int)로 변환할 때
Float.parseFloat(str); // 입력받은 값을 float로 변환할 때
Double.parseDouble(str); // 입력받은 값을 double로 변환할 때