1. 타입 변환
- 연산은 기본적으로 같은 타입의 피연산자와 수행
- 서로 다른 타입의 피연산자가 있을경우 두 피연산자 중 크기다 큰 타입으로 자동변환
EX) 10 / 3.0 = 3.3333... 실수형이 정수형보다 크기(소수)가 크기 때문이다.
정수 < 실수 < 문자열 // 같은 크기일 경우
- 강제 타입 변환
EX) int -> byte, (byte)변수명

✔ Scanner 클래스 -> 조건/제어문 들어가기 전에 미리 알아보자
- 자바에서 여러가지 데이터를 입력받을 수 있도록 도와주는 대표적인 입력관련 클래스
- java.util 패키지(폴더별로 나누어 둔것이라고 생각하자)에 존재
변수 -> Stack에 저장
데이터타입 변수이름 = 값;
int num = 10;
객체 -> new가 나오면 Heap에 저장
클래스이름 변수이름 = new 생성자명(); // 생성자: 클래스 이름과 동일한 함수 이름
// 클래스안에 변수나 많은것이 있다. 이 때 new를 사용하고 가장 먼저 사용하는 함수를 생성자라고 한다.
// 메모리에 올라갈 시 가장 먼저 실행되는 것을 동일한 클래스명(생성자)으로 정의한다.
//()에 들어가는 것은 실행되기를 원하는것을 기입한다.
Scnner sc = new Scanner(System.in); //sc는 참조변수 - 힙에 있는 주소를 저장
//sc라는 이름으로 heap에 저장된 Scanner를 사용하며, 리모콘 역할을 한다.
//class에 있는 파일이며 new는 생성하라는 의미이다.

2. 제어문
- 프로그램의 흐름을 제어하는 문장 - 특종 패턴에 의해서 원하는 값을 만들 수 있다.
- 조건문
1. if문
2. switch문
- 반복문
1. while문
2. for문
if문 - 뒤에 세미콜론을 사용할 경우 조건이 아닌 그저 실행되기 때문에 세미콜론 사용X
* if(조건식) 조건식의 결과가 true인 경우 실행할 문장;
* if(조건식) {
조건식의 결과가 true인 경우 실행할 문장;
...
}

if ~ else문
* if(조건식) 조건식의 결과가 true인 경우 실행할 문장;
else 조건식의 결과가 false인 뎡우 실행할 문장;
* if(조건식) {
조건식의 결과가 true인 경우 실행할 문장;
...
}else{
조건식의 결과가 false인 경우 실행할 문장;
...
}

if else if문
* if(조건식) { // 이 부분이 참일경우 위 문장을 빠저나온다. (if문 밖)
조건식의 결과가 true인 경우 실행할 문장;
...
}else if(조건식2){
조건식2의 결과가 true인 경우 실행할 문장;
...
}else{
조건식의 결과가 모두 false인 경우 실행할 문장;
}

✔ String 클래스 -> 변수로 오해하는 경우가 多 변수가 아닌 클래스이다.
String str = new String("자바");//Heap
== String str = "자바"; //리터럴 표기법
int num = 10; //Stack
== (같다. stack)
int num1 = 10
int num2 = 10
if(num1 == num2) System.out.println("같다!"); // 주소비교이다.
//오류없이 출력 왜냐하면 스택에 저장한 변수를 이용하였기 때문이다.
String str = "자바";
if(str == "자바") System.out.println("같다!"); // X
//오류발생 Heap에 저장한 클래스를 비교하였으며 str(주소값) "자바"(문자)는 엄연히 다르다.
// heap에 있는 클래스는 비교연산은 불가능하다 이를 해결하기 위해 비교 함수가 존재한다.
if(str.equals("자바"))System.out.println("같다!"); // O - equals함수 사용하여 판별
//object : 자바 프로그램을 사용하면서 많은 기능들을 가지고있어 내가 만들지 않아도 상속. 신과같다.
String str1 = "자바";
String str2 = str1; // 위 아래 전부 주소값으로 변환된다.
문제 성적 프로그램
1. 3과목 변수를 만들어 값을 입력(Scanner)
2. 위 점수를 변수에 저장하고 총점과 평균, 학점을 구함
(단, 학점은 평균을 기준으로 90점 이상은 A,80점 이상은 B,70 점 이상은 C 60점 이상은 D학점 나머지는 F)
switch문
- if문과 비슷하지만 좀 더 정형화된 형태
- 특정 값과 일치하는 값을 찾아 실행
switch(변수) {
case 값1:
값1과 변수가 같을 경우 실행할 문장;
break; //break가 없으면 계속 밑으로 내려간다.
case 값2:
값2과 변수가 같을 경우 실행할 문장;
break;
......
default:
값이 변수와 모두 다를 경우 실행할 문장;
........
}

과제. 성적 프로그램
(조건)
1. 3과목 변수를 만들어 값을 입력(Scanner)
2. 위 점수를 변수에 저장하고 총점과 평균, 학점을 구함
(단, 학점은 평균을 기준으로 90점 이상은 A,80점 이상은 B,70 점 이상은 C 60점 이상은 D학점 나머지는 F)
3. Switch 문으로

나는 처음 성적 A인 100점을 생각하지 않도 90 ~ 99 점 까지만 생각하여 case 9만 사용했었다.
'Java > Java' 카테고리의 다른 글
국비지원 자바 복습 6 (메소드, 메인메소드, opp, 클래스) (0) | 2022.10.04 |
---|---|
국비지원 자바 복습 5 (2차원 배열, String 클래스, 주민등록 검증) (1) | 2022.10.04 |
국비지원 자바 복습 4 (반복 문, 배열) (1) | 2022.10.04 |
Java 1 (기초, 변수, 연산자,) (0) | 2022.10.03 |
Java 국비지원 OT (1) | 2022.10.02 |