<JAVA_PreClass_231010화>
패키지 > 라이브러리 > 클래스(대문자로 시작) > 변수,함수
ex) java.lang.* (-> 여기서 *은 모든것을 의미)
자바 라이브러리 안에 있는 > 랭귀지 안에 있는 > 모든것들을 가져다 쓴다는 의미 (.으로 구분, 앞에 있을 수록 큰거)
현재 패키지에 있는거 말고, 다른 패키지에 있는 클래스를 사용하기 위해서는
반드시 import 명령으로 그 패키지를 추가 해 줘야 사용 가능하다.
System.out //모니터를 의미(보여주기)
System.in // 키보드를 의미(입력)
--------------------------------------------------------
<콘솔창에 입력값을 넣을 때>
import java.util.Scanner;
Scanner sc = new Scanner(System.in); // 키보드 객체 생성(메모리 할당을 받음)
System.out.print("주민번호 입력->");
String id = sc.nextLine(); // Scanner 클래스의 nextLine() 메서드를 사용하여 입력받은 문자열을 String변수 id에 저장
char sung = id.charAt(7); // id라는 문자열에서 7번째 문자를 char변수 sung에 저장
//현재 년도 구하기
Calendar c = Calendar.getInstance();
// Calendar 클래스를 객체화 시킨것 (= 메모리할당 = 메모리에 올려놓는 것)
// Calendar 클래스의 getInstance() 메서드를 사용하여 현재 날짜와 시간을 나타내는 Calendar객체를 생성하여 변수c에 저장.
// Calendar 클래스의 getInstance() 메서드를 호출하여 Calendar변수 c를 선언.
int year = c.get(Calendar.YEAR);
// c.get(Calendar.YEAR); 이 부분은 Calendar객체의 get()메서드를 사용해 현재 날짜와 시간을 나타내는 Calendar객체의 연도를
// int변수 year에 저장
--------------------------------------------------------
<반복문 for>
초기값이 조건식에 위배되지 않을 경우 실행 코드를 한 바퀴 돈다.
이후 증감식을 통해 얻어진 값으로
다시 한번 조건식에 위배되는지 확인함.
만약 위배되지 않을 경우 이전 과정을 반복하며,
위배될 경우에 반복문 이 끝남.
for (초기값; 조건식; 증감식) { 실행 코드 블럭 }
for (변수선언; 조건; 변수의 증감) {
}
주의사항 : 증감이 없다면 무한루프에 빠짐.
<연습문제>
// 문제 : for문을 이용해 1~10까지 출력해보시오.
// 풀이 :
for (int i =1; i<11; i++) {
System.out.println(i);
}
// 문제 : for문을 이용해 구구단 2단을 찍어보시오.
// 풀이 :
int variable = 2;
for (int i =1; i<10; i++) {
System.out.println("2x"+ i + "=" + (variable*i));
}
// 문제 : for문을 이용해 구구단 2단에서 짝수 곱셈만 출력 (2x2=4, 2x4=8, 2x6=12 ...)
// 풀이 :
int variable = 2;
for (int i =2; i<10; i+=2) {
System.out.println("2x"+ i +"=" + (variable*i));
}
// 문제 : 콘솔창에 입력한 랜덤한 숫자의 구구단을 출력하시오
// 풀이 :
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
System.out.print("단 입력->");
int dan = sc.nextInt();
for (int i=1; i<10; i++) {
System.out.println(dan + "x" + i + "=" + (dan*i));
}
--------------------------------------------------------
<연습문제>
// 문제 : 990401-1234567이 주어졌을 때, 이 사람의 나이를 계산해 보시오.
// 풀이 :
0. 주민번호에서 앞2자리 추출 "xx" ex) 99 -> 문자열로 인식
1. 뽑아낸 문자를 숫자로 변환해야 함.
2. 나이 계산 시 성별코드 1,2면 1990+ 뽑아낸숫자
3. 나이 계산 시 성별코드 3,4면 2000+ 뽑아낸숫자
4. 나이를 계산하려면 (현재년도-태어난년도)+1
String id = "990401-1234567";
String birthYear = id.substring(0, 2);
// 0번째부터 1번째(2-1) 까지 뽑아내는 substring함수.
// 주민번호에서 앞2자리 추출 "xx" ex) 99 -> 문자열로 인식
int by = Integer.parseInt(birthYear);
// 뽑아낸 문자열을 숫자로 변환해야 함.
Integer라는 클래스의 parseInt함수를 사용.
System.out.println(by); // String문자열 99를 int정수형 99로 변환 완료.
char sung = id.charAt(7); // 성별을 확인하기 위해 주민번호에서 7번째 char를 추출
int age = 0; // int 변수 age의 값을 0으로 초기화
//현재 년도 구하기
Calendar c = Calendar.getInstance();
// Calendar 클래스를 객체화 시킨것 (= 메모리할당 = 메모리에 올려놓는 것)
// Calendar 클래스의 getInstance() 메서드를 사용하여 현재 날짜와 시간을 나타내는 Calendar객체를 생성하여 변수c에 저장.
// Calendar 클래스의 getInstance() 메서드를 호출하여 Calendar변수 c를 선언.
int year = c.get(Calendar.YEAR);
// c.get(Calendar.YEAR); 이 부분은 Calendar객체의 get()메서드를 사용해 현재 날짜와 시간을 나타내는 Calendar객체의 연도를
// int변수 year에 저장
if (sung == '1' || sung =='2') {
age = year-(1900+by)+1;
}
else if (sung =='3' || sung=='4') {
age= year-(2000+ by)+1;
}
System.out.print("나이는->"+age); // 나이 = (현재년도-태어난년도)+1
// 답 : 나이는25