TIL

김명광·2024년 6월 18일

TIL

목록 보기
2/6

연산자

  • 산술연산자 ( +, -, *, /, %, <<, >>)

    • 사칙 연산과 비트연산
  • 비교 연산자 (>, <, >=, <=, ==, !=)

    • 크기비교 => (참,거짓) bool 값을 뱉음.
  • 논리 연산자 (&&, ||, !)

    • AND 나 OR 등 조건 => 이것도 bool 값.
  • 대입 연산자 (=, ++, --)

    • 우변 값을 좌변에 저장,대입

      복합대입 연산자: 피연산자 앞에 붙이냐 뒤에 붙이냐에 따라서 값이 다름

public class Arr01 {
    public static void main(String[] args) {
        int num = 1;
        int val = 20;
        int ans = val + ++num; //num에 1을 더하고 val과 더하고 ans에 넣음
        System.out.println(ans); // 22출력 (20+2)
        System.out.println(num); // 2출력  (1+1)

        ans = val + num++; //val과 num을 더해서0 ans에 넣고 num에 1을 더함. 
        System.out.println(ans); // 22출력 (20+2)
        System.out.println(num); // 3출력  (2+1)
    }
}
  • 기타 연산자 ((type), ?:, instance of)

    • 형변환 연산자 (type)
int intNumber = 50 + (int) 50.5; // 50+50
double doubleNumber = (double) 70 + 10.7; // 70.0 + 10.7
  • 삼항 연산자 ( (조건) ? (참 결과) : (거짓 결과) )
int x = 2;
int y = 10;

boolean b = (x == y) ? true : false; // Q:x랑 y랑 같음? 
System.out.println(b); // false         A:ㄴㄴ

String s = (x != y) ? "정답" : "땡";
System.out.println(s); // 땡

int max = (x > y) ? x : y;
System.out.println(max); // 10

int min = (x < y) ? x : y;
System.out.println(min); // 2

연산자 우선순위
( 산술 > 비교 > 논리 > 대입)

조건문

if문: if(조건){연산}

boolean flag = true;

if (flag) {
	System.out.println("참."); // 조건이 참이면 출력 > flag 는 true니까 참. 출력.
}

if-else문: if(조건){연산}else{연산}

boolean flag = false;

if (flag) {
	System.out.println("참.");  //if 조건이 참일 때 출력
}else {
	System.out.println("거짓."); //if 조건이 거짓 일 때 출력 >> flag =false > 거짓.출력
}

else-if(조건)

조건이 여러개 일 때 사용 조건 무한으로 걸 수 있음.

int number = 2;

if (number == 1) {
	System.out.println("number 값은 1 입니다."); // 미출력
} else if (number == 2) {
	System.out.println("number 값은 2 입니다."); // number 값은 2 입니다. 출력
} else {
	System.out.println("number 값은 모르는 값입니다."); // 미출력
}

중첩 if문

if문 안에 if문을 넣어서 복잡하게 조건을 걺.

boolean flag = false;
int number = 2;

if (flag) {
	if (number == 1) {
		 System.out.println("flag 값은 true, number 값은 1 입니다."); // 미출력
  } else if (number == 2) {
		 System.out.println("flag 값은 true, number 값은 2 입니다."); // 미출력
	}
} else {
	if (number == 1) {
		 System.out.println("flag 값은 false, number 값은 1 입니다."); // 미출력
  } else if (number == 2) {
		 System.out.println("flag 값은 false, number 값은 2 입니다."); // 출력
	}
}

switch(피연산자)/case(조건) 문

  • switch(피연산자){case(조건) : (연산) }
  • if문 보다 가독성이 좋음. 근데 조건을 1개 바께 못걸어서 if문을 더 많이씀.
  • case연산문 마지막에는 무조건 break; 넣어줘야함

    Q:안하면 어케됨?
    A: case가 안끝나서 switch가 끝날때까지 계속 실행됨

int month = 8;
String monthString = "";
switch (month) {
    case 1:  monthString = "1월";
             break;
    case 2:  monthString = "2월";
             break;
    case 3:  monthString = "3월";
             break;
    case 4:  monthString = "4월";
             break;
    case 5:  monthString = "5월";
             break;
    case 6:  monthString = "6월";
             break;
    case 7:  monthString = "7월";
             break;
    case 8:  monthString = "8월"; 
             break;
    case 9:  monthString = "9월";
             break;
    case 10: monthString = "10월";
             break;
    case 11: monthString = "11월";
             break;
    case 12: monthString = "12월";
             break;
    default: monthString = "알수 없음";
}
System.out.println(monthString); // 8월 출력

반복문

for문

  • 특정 조건에 따라 연산을 반복해서 하고 싶을 때 씀
  • for(초기값; 조건문; 증가연산) { (연산) }
for(int i=0; i < 4; i++) { // 변수 i 값은 0 ~ 3 까지 반복
    System.out.println(i + "번째 출력"); // i 변수와 문자열 합치기
}

// 출력
0번째 출력
1번째 출력
2번째 출력
3번째 출력

향상된 for문

  • for(변수 타입 변수 명 : 배열) { (연산) }
int[] numbers = {3,6,9,12,15};
for(int number: numbers) {
    System.out.print(number + " "); 
}
// 출력
3 6 9 12 15

while 문

  • for랑 같음 근데 초기값 없이 조건문으로만 반복함
  • while(조건문) { (연산) }
  • 조건이 true면 계속 반복하고 조건이 false면 반복 중단함.
int number = 0;
while(number < 3) {
		number++;
    System.out.println(number + "출력"); 
}
// 출력
1출력
2출력
3출력

do-while문

  • do{ (연산) } while(조건문)
  • while이랑 똑같이 조건 만족하면 연산 반복됨. 근데 do 하고 while문 들어가는거라서
    최초 1회는 무조건 실행됨. >> 무조건 한번은 써야하는 일에 쓰면 될듯?
int number = 4;
do {
    System.out.println(number + "출력"); 
} while(number < 3); // 연산을 한번 수행 후 조건문 체크

// 출력
4출력

break

  • break; 호출하면 가장 가까운 조건문 (for 나 while) 중단함.
int number = 0;
while(number < 3) {
		number++;
		if (number == 2) {
			break;  // 2일때 반복 중단
		}
    System.out.println(number + "출력"); 
}
// 출력
1출력

중복 for문

for (int i = 0; i < 10; i++) {
	System.out.println("i: " + i);
	if (i == 2) {
		break; // i 가 2일때 가장 바깥 반복문이 종료됩니다.
	}
	for (int j = 0; j < 10; j++) {
		System.out.println("j: " + j);
		if (j == 2) {
			break; // j 가 2일때 가장 안쪽 반복문이 종료됩니다.
		}
	}
}
// 출력
i: 0 // 바깥 반복문 부터 수행 시작
j: 0 // 안쪽 반복문 1회차 수행
j: 1
j: 2 // j 가 2일때 안쪽 반복문 break;
i: 1 // 바깥 반복문은 아직 break; 호출이 안됬으므로 다음 반복수행
j: 0 // 안쪽 반복문 2회차 수행
j: 1
j: 2 // j 가 2일때 안쪽 반복문 두번째 break;
i: 2 // i 가 2일때 바깥 반복문도 break; 호출되어 종료

continue

  • 조건문에서 순서를 패스하고 싶을 때 씀.
int number = 0;
while(number < 3) {
		number++;
		if (number == 2) {
			continue;  // 2일때 반복 패스
		}
    System.out.println(number + "출력"); 
}
// 출력
1출력
3출력
profile
개발자 지망생

0개의 댓글