JAVA를 잡아라!...

JAVA - 2. 변수의 선언, 연산자, 제어문 : 조건문 if 본문

JAVA/JAVA_개념

JAVA - 2. 변수의 선언, 연산자, 제어문 : 조건문 if

onivv 2023. 11. 22. 00:18

#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