연산자
● 연산자 : 덧셈, 뺼셈 처럼 계산할 기호
● 피연산자 : 연산자로 인해 계산되는 숫자
연산자의 종류
논리연산자
결과값으로 받을 수 있는 boolean 값을 연결하는 연산자이다.
● && (AND = 피연산자 모두 참)
● || (OR = 피연산자 둘중 하나라도 참)
● ! (피연산자의 반대 boolean 값)
대입연산자
변수를 바로 연산해서 그 자리에서 저장하는 연산자
기본연산자 인 ' = '
복합연산자인 ' +=, -=, *=... '
ex _) += 1 은 ++ 이랑 동일
-= 1은 --이랑 동일
★ 주의
++{피연산자} --> 연산 전에 피연산자에 1 더해준다
{피연산자}++ --> 연산 후에 피연산사에 1 더해준다.
-- 도 이와 동일
그 외에 기타 연산자
● 형변환 연산자
● 삼항연산자
● instance of 연산자
삼항연산자
ex)
int x = 1;
int y = 2;
boolean z = ( x < y) ? true : false;
위의 코드에서 보면 괄호()안에 있는 조건식이 참이면 true를, 틀리면 false를 출력한다.
연산자 우선순위
연산자 우선순위 : 산술 > 비교 > 논리 > 대입
※단 괄호로 감싸준 것 부터 연산의 최우선!!
조건문
if문
int number = 0;
if (number == 1) {
System.out.println("number값은 1입니다.");
} else if (number == 2) {
System.out.println("number값은 2입니다.");
} else {
System.out.println("number값은 모르는 값입니다.");
}
: if 의 괄호 안에 조건이 참이면 중괄호{} 안의 연산을 수행
참이지 않으면 else if 가 있으면 else if 실행 없으면 else를 실행한다.
중첩 if 문
boolean flag = true;
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 {
System.out.println("flag값은 true이고 number 값은 모릅니다.");
}
} else{
if (number == 1) {
System.out.println("flag값은 false이고 number 값은 1입니다.");
} else if (number == 2) {
System.out.println("flag값은 false이고 number 값은 2입니다.");
} else {
System.out.println("flag값은 false이고 number 값은 모릅니다.");
}
}
말그대로 if문 안에 if 문이 중첩으로 있다고 생각하면 된다.
위의 코드에서 flag값이 참이면 해당 중괄호의 코드를 타고내려가 if 조건문을 만난다. 위에서 선언한 int number = 2가 있으므로 else if 조건식을 만나 실행을 한다.
중첩 if문 의 활용의 사례
-가위바위보 코드-
Scanner sc = new Scanner(System.in);
// A에게 값 입력 받기
System.out.println("A 입력 : ");
String aHand = sc.nextLine();
// B에게 값 입력 받기
System.out.println("B 입력 : ");
String bHand = sc.nextLine();
// 두 개의 값을 비교하는 메서드 -> Objects.equals(좌, 우) : 좌 우가 같은 경우 true, 다른 경우 false
if (Objects.equals(aHand,"가위")) {
if (Objects.equals(bHand,"가위")) {
System.out.println("A와 B는 비겼습니다.");
} else if (Objects.equals(bHand,"바위")) {
System.out.println("B가 이겼습니다.");
} else if(Objects.equals(bHand,"보")) {
System.out.println("A가 이겼습니다.");
}
}else if (Objects.equals(aHand,"바위")){
if (Objects.equals(bHand,"가위")) {
System.out.println("A가 이겼습니다.");
} else if (Objects.equals(bHand,"바위")) {
System.out.println("A와 B는 비겼습니다.");
} else if(Objects.equals(bHand,"보")) {
System.out.println("B가 이겼습니다.");
}
}else if(Objects.equals(aHand,"보")){
if (Objects.equals(bHand,"가위")) {
System.out.println("B가 이겼습니다.");
} else if (Objects.equals(bHand,"바위")) {
System.out.println("A가 이겼습니다.");
} else if(Objects.equals(bHand,"보")) {
System.out.println("A와 B는 비겼습니다.");
}
}else{
System.out.println( "이상한 값을 입력하셨습니다.");
}
switch / case 문
switch가 case 조건을 만족하면 case: 에 명시된 연산을 수행한다.
case(조건): 은 여러개로 설정이 가능하다.
※ case의 연산문 마지막에는 반드시 break; 를 넣어줘야 한다.
switch 문 중괄호 {} 안에는 마지막에 default: () 을 명시해서 case 조건들이 만족하지 않을때 수행한다.
: else 와 비슷
switch (month){
// case ~~~ 연산
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 = "알수없음";
}
if문과 switch 문의 차이점
- if문은 괄호안에 조건을 어러개 지정할 수 있다.
- switch 문은 피연산자 한개에 대한 조건만 지원한다.
반복문
for문
for (int i=0; i<10; i++){
}
형태를 반드시 기억하고 기억하고 기억하고 기억하자\
= for (초기값; 조건문; 증가연산) { (연산) }
while문
- 조건문을 만족해서 연산 반복수행
int number = 0;
//~하는동안
while (number < 3){ // number < 3인 동안~~
number++; // 1
System.out.println(number + "출력!");
}
do - while 문
int number = 4;
do {
System.out.println(number + "출력");
}while (number <3);
brak;
==> 반복문 안에서 사용되며 가장 가까은 블록의 for문 or while 문을 중단함
continue;
==> for문 or while 문에서 해당순서를 패스하고 싶을때 사용
'자바(Java)' 카테고리의 다른 글
자바 Java 객체지향이란무엇일까? #2 객체배열 클래스 인스턴스변수 (0) | 2023.06.03 |
---|---|
[Java 문법 종합반] 기초언어 2주차 ~2-16 (0) | 2023.05.25 |
[Java 문법 종합반] 기초언어 1주차 (0) | 2023.05.23 |
자바(java) 인자(argument) / 매개변수(parameter) 차이 (0) | 2023.05.12 |
자바 Java IDE 인텔리제이 new package, class 없을 때 해결 (0) | 2023.04.25 |