JAVA를 잡아라!...
JAVA - 2. 변수의 선언, 연산자, 제어문 : 조건문 if 본문
#1 데이터 종류 - 자료형, type
아래 표 참조
자료형 | type | byte | 값 |
논리형 | boolean | 1(bit) | true 또는 false |
문자형 | char | 2 | '0', 'a', '가', ... |
문자열 | String | "0", "ABC", "가나다라", ... | |
정수형 | int | 4 | -1, 0, 1, ... |
실수형 | float | 4 | 0.0F, 1.1F, 97.1234F, ... |
실수형 | double | 8 | 0.0, 1.1, 97.1234, ... |
#2 변수의 선언
- 자료형 변수명 = 값;
- 변수명도 함수명처럼 가독성이 좋아야함!
- 상수값 : 변수 중에서 값이 절대로 변하면 안되는 값 (final 자료형 상수명 = 값;)
int a = 10; //정수
double b = 3.14; //실수
char c = 'a'; //문자
String d = "apple"; //문자열 //a, b, c, e: 변수 , d: 객체
boolean e = true; //논리값(T/F) //flag 변수 : 주로 T/F 확인 지표가 되는 변수
//상수값 : 변수 중에서 값이 절대로 바뀌면 안되는 값
//변수를 상수화하는 키워드 : final
//값이 변할 수 없어서 연산자 사용 불가!
final double PI = 2014519;
#3 연산자
- 기능을 가진 특수 문자
- 우선순위 : 전위증감 > 산술연산 > 대입 연산 > 후위증감
- 증감 연산자 : ++, --
- 산술 연산자 : *, /, %, +, -
- 비교 연산자 : >, <, >=, <=, ==, !=
- 논리 연산자 : !(NOT), &&(AND), ||(OR)
- 대입 연산자 : =, +=, -=, *=, /=, %=, ...
예시 코드1
package day001;
public class Test05 {
public static void main(String[] args) {
int a = 11;
int b = 5;
int c = a++ / --b;
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("c : " + c);
}
}
과정1
① c = a++ / 4 b 전위증감 → / 산술연산
② c = 2 c 대입연산
③ a++ → 12 a 후위증감
Console1
a : 12
b : 4
c : 2
예시 코드2
package day001;
public class Test05 {
public static void main(String[] args) {
int a = 10, b = 20;
int c = b++ + ++a;
int d = c--*2;
int e = b / d < 5? 11 : 10;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d); // c의 후위증감은 d에 31*2 값이 대입된 후임.
System.out.println(e);
}
}
과정2 (c 틀렸음! c만 상세 과정 풀이)
① c = 20 + 11 → a 전위증감 → c 대입연산
② c-- → c 후위증감
③ System.out.println(c)의 위치가 변수 선언 아래에 있어 변수에서 연산자 계산이 모두 된 후 출력
Console2
a : 11
b : 21
c : 30
d : 62
e : 11
#4 삼항 연산자
- 하나의 조건식에서 참/거짓 중 하나를 선택
- (조건식) ? 참 : 거짓
- 삼항 연산자를 중복 사용하면 가독성이 떨어질 수 있으므로 그때는 if 사용
- 코드 길이가 줄어든다고 해서 컴파일 속도가 빨라지는 것은 아님
#5 제어문 : 조건문 if
-----------------------------------------------------------------------------------------------------------------------------------
1. if
if(조건식) {
실행문;
}
if(조건식) { // 위의 조건식이 참/거짓 상관없이 또 검사 => 둘다 검사
실행문;
}
2. if, else
if(조건식) { // 조건식이 true일 경우 실행
실행문;
}
else { // 조건식이 false일 경우 실행
실행문;
}
3. if, else if, else
if(조건식1) { // 조건식 1이 true일 때 실행
실행문;
}
else if(조건식2) { // 조건식 1이 false이고 조건식 2가 true일 때 실행
실행문; // == 위의 조건식이 참이면 검사 X, 거짓이면 검사 O
}
else { // 조건식 1과 2가 false일 때 실행
실행문;
}
-----------------------------------------------------------------------------------------------------------------------------------
문제
"1시10분의 1시간20분 전 시간은 11시50분." - 출력
예시코드
int h = 1, m = 10;
int h2 = h, m2 = m - 20;
m2가 음수이면
m2에 60분을 더해주고
h2에 1시간을 빼준다.
만약에 h2가 음수이면
h2에 12시간을 더해준다.
if(m2 < 0) { //m2가 음수이면 (0~59범위를 벗어났다면?)
m2 += 60; //m2에 60분을 더해주고,
h2 --; //h2에 1시간을 빼준다.
}
h2--; //h2에 1시간을 빼 (1~12범위를 벗어났다면?)
if(h2 < 1) { //h2가 음수이면
h2 += 12; //h2에 12시간을 더해준다.
}
System.out.println(h + "시" + m + "분의 1시간20분 전 시간은 " + h2 + "시" + m2 + "분");
'JAVA > JAVA_개념' 카테고리의 다른 글
JAVA - 6. Class (1) | 2023.11.29 |
---|---|
JAVA - 5. 함수 (1) | 2023.11.27 |
JAVA - 4. 배열 (1) | 2023.11.23 |
JAVA - 3. 제어문 : 반복문 for, while (0) | 2023.11.22 |
JAVA - 1. 설치 및 기본 구조 (0) | 2023.11.21 |