연산자
기본 자료형을 더하거나 빼는 등의 계산을 하기 위해서 사용함.
단항 연산자 : 피연산자가 하나뿐인 연산자
- 부호 연산자 (+, -)
- 증감 연산자 (++, --)
- 논리 부정 연산자(!)
- true → false, false → true
- 비트 반전 연산자(~)
이항 연산자 : 피연산자가 두 개인 연산자
- 산술 연산자 : 일반 사칙연산
- 오버플로우 : 연산의 결과가 int 타입에 저장할 수 있는 범위를 초과했을 때
- Infinity : 0으로 나눌 때 infinity 반환 or 양/음의 무한대로 발산
- NaN : 숫자가 아닌 것을 연산하면 NaN
- 비교 연산자 : 피연산자들을 비교하여 boolean 타입인 true, false를 산출.
- 논리 연산자 : 조건식을 연결할 때 사용하는 연산자
- AND (&&)
- OR (||)
- XOR (하나는 true 다른 하나는 false → true)
- NOT (논리 부정)
- 비트 이동 연산자 (Shift 연산자)
- ex) 정수 8을 왼쪽으로 2비트 이동시키면
int num1 = 00001000
num1 << 2;
→ 결과는 00100000
삼항 연산자 : 세 개의 피연산자가 있는 연산자
public class Example {
public static void main(String[] args) {
int score = 95;
char grade = (score > 90) ? 'A' : 'B';
System.out.println("당신의 학점은 : " + grade);
}
}
(score > 90) 을 연산하면 true 이고, true일 경우에는 첫번째 값인 ‘A’ 값을 반환함.
조건문
if / else if / else : 조건
switch / case : if문과 비슷하지만 변수가 어떤 값을 갖느냐에 따라 실행문이 선택됨.
public class MonthSwitchCaseExample {
public static void main(String[] args) {
int month = 3;
String monthString;
switch (month) {
case 1:
monthString = "January";
break;
case 2:
monthString = "February";
break;
case 3:
monthString = "March";
break;
default:
monthString = "Invalid month"; // 유효하지 않은 범위의 값을 입력받았을 때 예외처리
break;
}
System.out.println(monthString);
}
}
→ 비교연산자, boolean 값 비교는 불가능. if/else로 써야함.
배열
자료형의 집합. []
배열의 크기 설정하기
// 배열 만들기
String[] weeks = {"월요일","화요일","수요일","목요일","금요일"};
// 초기값 없이 배열 변수 만들기
String[] weeks = new String[7];
→ 이땐 반드시 배열 크기를 할당해줘야함.
배열의 길이 구하기
arr.length를 사용하면 됨!
public class Hello {
public static void main(String[] args) {
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
for (int i = 0; i < weeks.length; i++) {
System.out.print(weeks[i]);
}
}
}
→ 월화수목금토일
weeks 배열에는 7개의 요소가 있기 때문에 weeks.length = 7
배열 관련 에러
- 현재 배열 크기보다 그 이상의 공간에 접근을 한다면 해당 에러 발생
- ArrayIndexOutOfBoundsException
문자 → 숫자
String → int/Integer
- Integer.parseInt() : 문자열을 int 타입으로 변경
- Integer.valueOf() : 문자열로 Integer 객체 생성
숫자 → 문자
- Integer.toString()
- String.valueOf()
- 변수 + “” : Casting 방식
Daily Quiz
1. 아래 2개의 변수 number1, number2의 사칙 연산 결과(result1 ~ result4)를 정수로 출력하세요. (사칙연산: +, -, *, /) 주석처리 된 곳에 코드를 채우면 됩니다.
public class Question {
public static void main(String args[]) {
int number1 = 10;
double number2 = 2.0;
// 사칙연산 코드 추가
int result1 = number1 + (int) number2;
int result2 = number1 - (int) number2;
int result3 = number1 * (int) number2;
int result4 = number1 / (int) number2;
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
}
}
2. 아래 코드의 출력값은 무엇일까요? 코드를 돌려보기 전에 예측해보세요.
2-1.
public class Question {
public static void main(String args[]) {
// 아래 코드의 출력값은 무엇일까요?
System.out.println(10 / 2 + 3 * 4);
}
}
→ 17
2-2.
public class Question {
public static void main(String args[]) {
// 아래 코드의 출력값은 무엇일까요?
int number = 10;
int result1 = number + 1;
int result2 = number++;
int result3 = number;
int result4 = --number;
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
}
}
→ 위에서부터 순서대로 11, 10, 11, 10
2-3.
public class Question {
public static void main(String args[]) {
// 아래 코드의 출력값은 무엇일까요?
int num1 = 5;
int num2 = 7;
System.out.println((num1 > 5) && (num2 > 5));
System.out.println((num1 > 5) || (num2 > 5));
System.out.println(!((num1 > 5) && (num2 > 5)));
}
}
→ false, true, true
3. 다음의 내용을 연산식(조건식)으로 표현해보세요.
- i는 2의 배수 또는 3의 배수이다.
if ((i % 2 == 0) && (i % 3 == 0)) {
System.out.println("i 는 2의 배수 또는 3의 배수이다.");
}
4. 아래 코드의 실행 결과가 true가 되도록 수정해보세요.
public class Question {
public static void main(String args[]) {
// 아래 코드의 실행 결과가 true가 되도록 수정해보세요.
String str1 = new String("Hello world!");
String str2 = new String("Hello world!");
System.out.println(str1.equals(str2));
}
}
5. 프로그래머스 문제
기초 트레이닝 > ‘연산’, ‘조건문’ 관련 문제
'Back-End > Java # 교육' 카테고리의 다른 글
[Java 교육] final/상수/Getter,Setter/상속 (0) | 2024.02.01 |
---|---|
[Java 교육] 메소드 (0) | 2024.01.31 |
[Java 교육] 반복문/참조 자료형/클래스 (0) | 2024.01.30 |
[Java 교육] 변수/문자열 (0) | 2024.01.26 |
[Java 교육] Java 기초/코딩 컨벤션 (1) | 2024.01.25 |