일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- java기본자료형
- 비전공자sqld
- 격파르타비전공자
- javaJVM
- 프로그래머스제일작은수
- java알고리즘문제풀이
- java list 출력
- 노베이스부트캠프
- javaJRE
- java알고리즘
- 항해15기
- 항해99후기
- 인터프린터언어
- 프로그래머스
- java set 저장
- java set 출력
- java최솟값구하기
- 격파르타후기
- 격파르타합격후기
- java map 저장
- java 자료구조 활용
- sqld자격증합격
- java참조자료형
- 격파르타장점
- 코딩부트캠프후기
- 컴파일
- java list 저장
- java map
- 작은수제거하기
- java map 출력
- Today
- Total
코딩과 결혼합니다
[Java 문법 종합반] 2주차 : 연산자, 조건문 본문
연산자와 피연산자
연산자 : 덧셈, 뺄셈 처럼 계산할 '기호'
피연산자 : 연산자로 인해 계산되는 '숫자'
연산자의 종류
논리 연산자
&&(AND = 피연산자 모두 참), ||(OR = 피연산자 둘중 하나라도 참), !(피연산자의 반대 boolean 값)
대입 연산자
- 기본 대입 연산자
- 복합 대입 연산자
+= 1은 ++과 동일
-= 1 은 --와 동일
형변환 연산자
double doubleNumber = (double) 93 + 98.8; // 93.0 + 98.8
int는 정수형으로 0.8을 떼어낸 98을 더해줌
doble은 실수형으로 93을 93.0으로 계산함
삼항 연산자
: 3가지 피연산자가 존재하여 삼항 연산자 라고 한다.(조건/참결과/거짓결과)
int y = 9;
System.out.println(b); // false
String s = (x != y) ? "정답" : "땡";
System.out.println(s); // 땡
int max = (x > y) ? x : y;
System.out.println(max); // 9
int min = (x < y) ? x : y;
System.out.println(min); // 1
? 뒤에 참이면 왼쪽의 값을 거짓이면 오른쪽의 값을 도출한다.
int max를 구할 때에 x가 y보다 크다라는 조건은 사실이 아니므로 오른쪽의 y의 값 '9'가 나온다.
int min을 구할 때는 x가 y보다 작다라는 조건이 참이므로 왼쪽의 x의 값 '1'이 나온다.
instance of 연산자
: 피연산자가 조건에 명시된 클래스의 객체인지 비교하여 참/ 거짓을 응답해주는 연산자
연산자 우선순위
산술 > 비교 > 논리 > 대입
단, 괄호로 감싸주면 괄호안의 연산이 최우선순위로 계산된다.
int y = 9;
int z = 10;
boolean result = x < y && y < z; // <,> 비교연산자 계산 후 && 논리 연산자 계산
System.out.println(result); // true
result = x + 10 < y && y < z; // +10 산술연산자 계산 후 <,> 비교연산자 계산 후 && 논리 연산자 계산
System.out.println(result); // false
result = x + 2 * 3 > y; // 산술연산자 곱센 > 덧셈 순으로 계산 후 > 비교연산자 계산
System.out.println(result); // false (8>9)
result = (x + 2) * 3 > y; // 괄호안 덧셈 연산 후 괄호 밖 곱셈 계산 후 > 비교연산자 계산
System.out.println(result); // true (12>9)
산술변환
:연산 전에 피연산자의 타입을 일치시키는 것(둘중에 저장공간 크기가 더 큰 타입으로 일치)
public static void main(String[] args) {
short x = 10;
int y = 20;
int z = x + y; // 결과값은 더 큰 표현타입인 int 타입의 변수로만 저장할 수 있습니다.
long lx = 30L;
long lz = z + lx; // 결과값은 더 큰 표현타입인 long 타입의 변수로만 저장할 수 있습니다.
float fx = x; // 결과값은 더 큰 표현타입인 float 타입의 변수로만 저장할 수 있습니다.
float fy = y; // 결과값은 더 큰 표현타입인 float 타입의 변수로만 저장할 수 있습니다.
float fz = z; // 결과값은 더 큰 표현타입인 float 타입의 변수로만 저장할 수 있습니다.
System.out.println(lz); //60
System.out.println(fx); //10.0
System.out.println(fy); //20.0
System.out.println(fz); //30.0
}
}
조건문, 반복문
조건문
if 문
if (조건)
if (flag) {
System.out.println("flag 값은 true 입니다."); // flag 값은 true 입니다. 출력
}
if의 소괄호 안의 조건이 boolean 값 true를 만족하면 중괄호 안의 연산을 수행
if(조건)-else
if (flag) {
System.out.println("flag 값은 true 입니다."); // 미출력
} else {
System.out.println("flag 값은 false 입니다."); // flag 값은 false 입니다. 출력
}
if문 조건이 거짓일 경우에 따른 연산을 수행하기 위해 else{연산} 형태로 사용
if의 소괄호 안의 조건이 boolean 값 false를 만족하면 else의 중괄호 안의 연산을 수행
if(조건)-else if(조건)
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(조건)
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 입니다."); // 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(조건) : (연산) }
switch 피연산자가 case 조건을 만족하면 case: 뒤에 명시되어 있는 연산을 수행
** 각 case의 연산문 마지막에는 break;를 꼭 넣어줘야 함!!
if 문과 switch문의 차이점
1. 복합조건
: if 문은 복합조건을 지원하지만 switch 문은 피연산자 한개에 대한 조건만 지원
2. 코드중복
: if문은 상대적으로 코드 중복이 많고, switch 문은 코드 중복이 적다.
반복문
for문
for(초기값; 조건문; 증가연산) { (연산) }
System.out.println(i + "번째 출력"); // i 변수와 문자열 합치기
}
// 출력
0번째 출력
1번째 출력
2번째 출력
3번째 출력
향상된 for 문
for(변수 타입 변수 명 : 목록변수) { (연산) }
변수 목록을 출력할때 쓴다.
for(int number: numbers) {
System.out.print(number + " ");
}
// 출력
3 6 9 12 15
while 문, do-while 문
while (조건){ 증감 연산을 꼭 넣어줘야 한다! }
int number = 0;
while (number < 3) {
number++;
System.out.println(number + "출력!");
}
do 안에 있는 로직을 먼저 수행한 후에 while문
int number = 4;
do{
System.out.println(number + "출력!");
} while (number < 3);
number가 4이므로 while문 까지 가지 않고 바로 출력 되고 끝남.
* 조건이 최초에 만족하지 않더라도 어떤 작업은 무조건 선행해야 된다라고 한다면 do-while 수행
break
: 가장 가가운 블록의 for문 또는 while, switch 문을 중단
while (number < 2){
number++;
if (number ==2 ){
break;
}
System.out.println(number + "출력!");
}
//1 출력!
System.out.println("i: " +i);
if (i == 2){
break;
}
for(int j=0; j<10; j++){
System.out.println("j: " +j);
if(j==2){
break;
}
}
}
i: 0
j: 0
j: 1
j: 2
i: 1
j: 0
j: 1
j: 2
i: 2
continue
continue를 만나면 바로 그 다음 반복문으로 넘어가게 된다.(하위 로직은 그냥 지나침)
while (number < 3){
number++;
if(number == 2){
continue;
}
System.out.println(number + "출력");
}
1출력
3출력
'2세 > Java' 카테고리의 다른 글
[Java 문법 종합반] 3주차 : 클래스 설계 (0) | 2023.05.27 |
---|---|
[Java 문법 종합반] 3주차 : 객체지향 프로그래밍 (0) | 2023.05.26 |
[Java 문법 종합반] 1주차 : JVM, 변수 (0) | 2023.05.23 |
객체지향언어(1) 클래스, 인스턴스, 메소드 (0) | 2023.05.16 |
java 반복문 (0) | 2023.05.15 |