int data = 'C';
char data2 = 65;
System.out.println(data); //67
System.out.println(data2); //A
문자는 컴퓨터가 숫자로 기억을 한다.
-> 특정값으로 연산을 해주면 증가 또는 감소가 발생하게 된다.
-> 그 증가 또는 감소된 숫자를 문자로 바꿔주게 되면 암호화가 된다.
< example >
String pw = null;
System.out.println("PW : ");
pw = new Scanner(System.in).next();
System.out.println("암호화 된 PW : ");
for(int i =0; i<pw.length(); i++) {
System.out.println((char)(pw.charAt(i)-10));
//A1B2C3 입력
//7'8(9) 암호화 되어 출력
< 풀이 >
문자와 정수의 연산은 정수가 된다. 그 문자가 자동으로 형변환이 된다.
-10이 된 정수값을 다시 문자로 형변환해주니깐 -10만큼의 암호화가 된 문자가 출력이 된다.
문자는 컴퓨터가 숫자로 기억하기 때문에 숫자를 이용해서 연산을 하고
그 연산된 숫자를 문자로 바꾸면 암호화가 된다!
입력하기 전에 무엇을 입력해야 할지 사용자에게 알려줘야 함.
(즉 출력이 먼저다.)
출력함수와 입력함수는 개발자를 위한 도구.
변수의 값이 잘들어갔는지 개발자가 확인하기 위해 존재.
nextLine( ) : 공백까지도 한 줄로 판단해서 한 줄로 그대로 입력받음
next( ) : 공백을 구분점으로 판단해서 각각의 문자열을 입력받음.
< example >
String name = "";
String lastName= "";
Scanner sc = new Scanner(System.in);
System.out.println("이름이 뭐니?"); // 지원 김
name = sc.next(); // 지원
lastName = sc.next(); // 김
-> next() 공백이 포함되어 있어 두번의 출력이 필요하다.
name = sc.nextLine(); // 지원 김
-> nextLine() 공백까지도 한 줄로 판단하기 때문에 그대로 출력이 된다.
System.out.println(name);
System.out.println(lastName);
sc.next(); 의 문자열 값이 name에 담겼다.
< example >
int num1 = 0, num2 = 0;
Scanner sc = new Scanner(System.in);
System.out.println("첫번째 정수 : ");
num1 = sc.nextInt();
//이 통째를 내가 입력한 정수 값이라고 생각!
//sc.nextInt(); 이렇게 되면 저장공간에 담기진 않는다.
//그래서 변수를 생성한다.
System.out.println("두번째 정수 : ");
num2 = sc.nextInt();
System.out.println("첫번째 정수 : " + num1); //첫번째 정수 : 3
System.out.println("두번째 정수 : " + num2); //두번째 정수 : 4
System.out.println(num1 + num2); //7
nextLine()이 Enter를 먹는 경우.
< example >
Scanner sc = new Scanner(System.in);
System.out.println("나이를 입력하세요");
sc.nextInt();
System.out.println("이름을 입력하세요");
sc.nextLine(); //엔터를 위한 nextLine
//nextLine이 엔터를 먹어서 이름을 입력을 하려면 한번더 사용해야한다.
sc.nextLine(); // 비로소 이름을 입력할 수 있는 입력상태가 된다.