//TODO: 예제) 변수의 값을 서로 바꾸기 (swap):
//알고리즘: 1) x,y의 값을 준비 2)임시변수 temp 를 준비 3)temp에 x의 값을 넣어준다 4)x에 y의 값을 넣는다 5)y에 temp 값을 넣는다.
int x = 5;
int y = 10;
int temp = 0; // 템프 초기값 아무거나
// 결과 : x = 10, y = 5
temp = x; // x 값 임시보관 :5
x = y; // x = 5=> 10
y=temp; // temp = 5 => y=5
System.out.println("x =" + x + ", y=" +y);
/
//TODO: 예제1) 자료형: int (integer:정수)
// => 2진수/8진수/10진수/16진수
// TODO: 2진수 : 0, 1 로 표시하는 것, 컴퓨터 좋아함
// int val1 = 0b1011; // 2진수(bianry, (0b 앞에 붙임)
//
//
// //TODO: 8진수 : 0~7까지 숫자로 표시
// int val2 = 0206; // 8진수 (0 앞에 붙임)
//
//
//
// //TODO: 10진수 : 0 ~ 9 숫자로 표시, 사람이 좋아함
// int val3 = 369; // 10진수
//
//
// //TODO:16진수 : 0~15 숫자와 알파벳으로 표시 (10~15 => A,B,C,D,E,F)
// int val4 = 0xb3; // 16진수 컴퓨터친함 (0x 붙임)
// //전부 10진수로 자동변환되어 출력됨
//
//
//
//// TODO: 예제 2) 정수 자료형 : (참고) byte(1byte 정수형), -128~127까지 사용
//// 컴퓨터 구조 : bit(비트) - 1개의 방의 최소단위
//// 8bit 씩 관리함 , (1kg = 1000g)
//// 8bit = 1byte
//// 1000byte = 1Kbyte
//// 1000Kbyte = 1Mbyte
//// 1000Mbyte = 1Gbyte
//// 1000Gbyte = 1Tbyte
//// 1000Tbyte = 1Hbyte
//
// byte var1 = -128;
// byte var2 = -30;
// byte var3 = 0;
// byte var4 = 127;
// System.out.println(var1);
// System.out.println(var2);
// System.out.println(var3);
// System.out.println(var4);
// TODO: 정수 자료형(*) : long (8byte)
// long var1 = 10;
// long var2 = 20L; // L(l) 이 뒤에 붙기도 함
// long var3 = 1000000000000L;
//
// System.out.println(var1);
// System.out.println(var2);
// System.out.println(var3);
//
// TODO: 정수(1문자) 자료형(코딩테스트형) : char (1byte 정수형), 특이함
// => 정수를 저장하면 : 아스키코드
// => 문자를 저장하면 : 1글자가됨 => 홑따옴표 ('')
// TODO: 아스키코드표 - 숫자를 문자와 대응되게 표시한 표, 컴퓨터가 찾아봄
// (참고 유니코드표: 한글, 중국어 등을 표시한 표)
char c1 = 'A'; // 홑따옴표 사용
System.out.println(c1);
char c2 = 65;
System.out.println(c2);
char c3 = '가';
System.out.println(c3);
//TODO: 2) 문자열 자료형*** : string , 쌍따옴표 이용 ("")
String name = "홍길동";
String job = "프로그래머";
System.out.println(name);
System.out.println(job);
// TODO:3) 특수문자 소개 : \ 역슬래쉬 사용
// 예제 : "(쌍따옴표) 출력
// 결과 : 우리는 "개발자" 입니다.
// System.out.println("우리는\"개발자\"입니다.");
//
//TODO:3-2)
//예제 : 봄\여름\가을\겨울 출력
//System.out.println("봄\여름\가을\겨울");
//TODO: 3-3 특수문자 : \n
//출력함수:(자동줄바꿈): sout
// System.out.println();
System.out.print("안녕\n");
System.out.print("안녕");
//TODO: 4) 실수 자료형(*) double (8byte)
// double var1 = 3.14;
// System.out.println(var1);
//
// //TODO:4-2 실수 자료형 : float (4byte)
// float var2 = 3.14f; // 끝에 f붙임
// System.out.println(var2);
//TODO:참 , 거짓 자료형 boolean (1btye)
boolean stop = true;
System.out.println(stop); //
TODO: 자료형변환(형변환) : 자동형변환
// //TODO:작은 자료형에서 큰 자료형 넣으면 이상 없음
// byte bVal = 10; // 1byte
// int iVal = bVal; // 4byte
// System.out.println(iVal); // 출력?
//
// int iVal2 = 50; // 4byte
// long lVal3 = iVal2; // 8byte
// System.out.println(lVal3); // 출력?
//
// float fVal = 100.5f; // 4byte
// double dVAl = fVal; // 8byte
// System.out.println(dVAl); // 출력?
//TODO: 2) 수동 자료형변환(형변혼)
//TODO: 사용법 : 작은자료형 변수 =(작은자료형)변수2;
long lVal = 500; // 8byte
int iVal = (int)lVal;
System.out.println(iVal);
// TODO: 정리) 아스키코드 <-> 문자 변환
char cValue = 'A'; //1문자(아스키코드숫자)
int iValue = cValue;
System.out.println(iValue);
TODO: 정리) 아스키코드 <-> 문자 변환(코딩테스트용)
// char cValue = 'A'; // 1문자(아스키코드숫자)
// int iValue = cValue; // 65 (아스키코드)
// System.out.println(iValue); // 65 (문자 -> 아스키코드숫자)
//
// char cValue2 = (char)iValue; // char(2byte), int(4byte), 복원('A')
// System.out.println(cValue2);
//
// TODO: 예제) 주의) x = 1, y = 2 나눗셈 결과를 출력하세요
// int x = 1;
// int y = 2;
// double result =(double) x / (double) y; // 0.5
// System.out.println(result);
//
// TODO: 연산자 우선순위 : , / > +, -
// TODO: 가장 높은 연산자 우선순위 : ()
// int value = (10+2) 8;
// System.out.println(value);
// 문자열 -> 숫자 변환(*)
// 예제 : "10" -> 10 변경
//TODO:사용법: int 변수 = Integer.parselnt(문자열);
//String value = "10";
//int value2 = Integer.parseInt(value);
//int result = 10 +value2;
//System.out.println(result);
//// TODO: 16진수로 입력받아 10진수로 출력하기
//String value = "b"; // 16진수
//int Value2 = Integer.parseInt(value, 16);
//System.out.println(Value2);
//
//// TODO: 문자형 -> 실수로 변환
// String value = "3.14";
// double value2 = Double.parseDouble(value); // 3.14
// double result = value2 + 10; // 13.14
// System.out.println(result); // 13.14
/ TODO: 1) 입력함수(코딩테스트용) :
// 예제 1) 입력 : a
// 출력 : a
// Scanner scanner = new Scanner(System.in); //입력개체 만들기
// String input = scanner.next(); // 문자열(1단어) 입력
// System.out.println(input); // a
//
// TODO: 2) 정수 1개 입력받아서 출력
// 입력 : 3
// 출력 : 3
// Scanner scanner = new Scanner(System.in);
// int input = scanner.nextInt();
// System.out.println(input);
//TODO: 3) 실수입력
// 입력 3.14
// 출력 3.14
Scanner scanner = new Scanner(System.in);
double input = scanner.nextDouble();
System.out.println(input);
//TODO: 4) 2단어 입력받아 출력
// 입력 : I am
// 출력 : I am
// Scanner scanner = new Scanner(System.in);
// String value1 = scanner.next();
// String value2 = scanner.next();
// System.out.println(value1 +" " + value2);
//
//
//