[JAVA] 연산자와 조건문
Categories: JAVA-Learn
📌 개인적인 공간으로 공부를 기록하고 복습하기 위해 사용하는 블로그입니다.
정확하지 않은 정보가 있을 수 있으니 참고바랍니다 :😸
[틀린 내용은 댓글로 남겨주시면 복받으실거에요]
✨연산자
- 산술연산자
- +, -, *
- 나누기 : /
- 정수를 0으로 나누면 에러 발생
- 실수를 0으로 나누면 Infinity 발생 → 실무 하다가 infinity가 발생하면 실수를 0으로 나눈 것이 아닌지 의심해보아야 함.
-
정수 나눌때 결과 값이 실수인 경우 소수점은 내림으로 적용
1
**int num1=9/2 //4로 출력됨.**
- 실수를 나눌 때는 상기 코드와 같이 주의해야 함.
- 하나라도 실수 형태이거나 앞에 (double)을 붙여서 형변환을 시켜줘야 함 .
-
예제
- 나머지 : %
- 짝수나 홀수 등을 구할때 등 꽤 많이 사용됨
- 정수 % 0 = 오류 발생.
- 실수 % 0 = 오류발생
- 증감연산자
- 복합대입연산자
- 자기 자신에 어떠한 값으로 연산하여 갱신해 나갈 때만 사용
- 나누기와 나머지는 사용빈도가 낮음.
-
예제
- 비교 연산자
- boolean type으로 평가
- 대소 비교 연산자
-
< =, > = : 사용할 경우 = 는 뒤에 나와야 함.
대소 비교 연산자 결과 5 > 3 true 5 <= 5 true 3 > 2 true 2 >= 3 false -
예제 : x = 1보다 크고 5보다 작다 표현할 때
1 2 3
int x = 3; System.out.println( 1<x && x<5); // true System.out.println(1<x<5); //오류 발생
-
-
등가 비교 연산자
| 등가 비교 연산자 | 결과 | | — | — | | 5 == 3 | false | | 5 == 5 | true | | 3 != 2 | true | | 3 != 3 | false |
- 문자열에는 (String) == 사용하면 절대 안됨!!!! 💫 .equals()를 사용 해야 함.
- 논리 연산자
- AND 연산자(&&)
-
OR 연산자( ) - NOT 연산자 (!) : true와 false 를 반대로 바꾸는 연산자
-
AND 와 OR은 익숙해져야 하고 실무에서도 자주 사용.
-
연산자의 우선순위
-
연산자
-
💫💫(조건식) ? 참일때 : 거짓일때
-
콘솔 입출력
- 콘솔 출력 메서드
- System.out.print()
- 줄 바꿈 없이 수행됨
- 줄 바꿈을 원할 경우 개행 문자 \n 입력.
- System.out.println()
- ln은 개행문자를 포함.
- System.out.printf()
- 지시자를 사용하여 형식대로 출력하기.
-
지시자 : 실제로 출력 되는 값이 아니며, 값을 변환해 자신의 위치에 출력해 주는 기능
| 지시자 | 출력 포맷 | | %b | boolean | | %d | 10진수 | | %o | 8진수 | | %x, %X | 16진수 | | %c | char | | %s | String | | %n | 줄 바꿈 |
- System.out.print()
-
콘솔 입력 기능
Scanner
(1) Scanner scanner = new Scanner(System.in);
(2) Scanner에 에러 발생하면 alt+enter 눌러서 import java.util.Scanner 자동으로 입력됨.
1) 문자 입력시
(1) String 변수이름 = scanner.nextLine();
2) 정수 입력시
(1) Int 변수이름 = scanner.nextInt();
(2) 문자열 사용시 오류 발생.
3) 실수 입력시
(1) scanner.nextFloat();
✨조건문
if문
-
if 문
1
if (조건문){조건문이 true일때 수행됨.}
-
if-else
1
if (조건문) {조건문이 true 일때 수행} else {조건문이 false일때 수행}
-
if else-if
1 2 3
if (조건문) {if 조건문이 true 일때 수행} else if (조건문) {else if 조건문이 true 일때 수행} else {상기 조건문 중 어느 것도 실행되지 않을 때 수행}
-
중첩 if문
1 2 3 4 5 6 7 8 9 10
if(조건문1){ 조건문 1이 true 일때 수행 if(조건문2){ 조건문 1과 2가 모두 true일 때 수행 }else{ 조건문1이 true이고 2는 false일 때 수행 } }else{ 조건문 1이 false일 때 수행 }
-
예제
-
예제 1
1) 미성년자는 맥주를 살 수 없고, 65세 이상에게 할인한다고 가정할 경우에 아래 코드와 같음1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
```java public class Example02 { public static void main(String[] args) { int age=25; if( age >= 65){ System.out.println("맥주는 3500원 입니다."); } else if (age >=19) { System.out.println("맥주는 4500원 입니다."); }else{ System.out.println("미성년자는 살 수 없습니다."); } } } // 맥주는 4500원입니다. ```
2) 만약에 65세가 맥주를 구입한다고 가정할 때 if와 else if 구문이 바뀔 경우 else if 가 실행되지 않아서 3500원에 맥주를 사 먹을 수 없음.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
```java public class Example02 { public static void main(String[] args) { int age=65; if( age >= 19){ System.out.println("맥주는 4500원 입니다."); } else if (age >=65) { System.out.println("맥주는 3500원 입니다."); }else{ System.out.println("미성년자는 살 수 없습니다."); } } } // 맥주는 4500원입니다. ``` - 코드는 위에서 아래로 흐르고 처음 만난 if절이 true라서 할인된 가격에 사먹을 수 없다.
-
예제 2 (중첩 if문 예제)
1) 학점 구하기1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
```java if(score>=90) { grade="A"; if(score>=98){ grade+="+"; } else if ((score<94)) { grade+="-"; } }else if(score >=80){ grade="B"; if(score>=88){ grade+="+"; }else if(score<84){ grade+="-"; } }else{ grade="C"; } ```
-
switch문
-
switch문
1 2 3 4 5 6
switch(조건식){ case 값1 : 수행될 문장 ; break; case 값2 : 수행될 문장 ; break; default : 조건식의 결과와 일치하는 case문 없을 때 수행되는 문장;
1) 조건식의 계산결과와 일치하는 case 문으로 이동 후 break문을 만날 때 까지 수행
(break 문이 없으면 switch문의 끝까지 진행된다. ⇒ 빼먹지 않도록 주의)
2) if 문의 조건식과 달리, 조건식의 계산결과가 int범위 이하의 정수 또는 문자열만 가능
- 즉, byte, short, char, int
3) default 문은 적지 않아도 됨.
4) if문처럼 중첩 가능
-
예제 1) 학점 구하기
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 switch (score){ case 100 : case 99 : case 98: case 97: case 96: case 95: case 94: case 93: case 92: case 91: case 90: grade ="A"; break; case 89 : case 88 : case 87: case 86: case 85: case 84: case 83: case 82: case 81: case 80: grade ="B"; break; default: grade="c"; } ``` (1) switch는 학점을 일일이 적어줘야 함<br/> (2) 그러나 조금만 변경하면 간단히 줄일 수 있음 ⇒ 이런 식으로 생각하는 습관 들이기<br/> ```java switch (score/10){ case 10 : case 9 : grade ="A"; break; case 8 : grade ="B"; break; default: grade="c"; } ```
Comment
- 배운내용 : 연산자와 조건문 그리고 조건문 연습문제
- 조건문 연습문제도 풀었는데 틀렸거나 헷갈리는 부분은 따로 정리할 예정
- 🍒내가 2주 가량 혼자서 예습했던 부분을 엄청 빠른 속도로 진도를 나가는게 느껴져서
영혼이 빠져나갈 것 같지만 멘탈 붙잡고 공부해야 하는데 나중에는 어쩌지 하는 걱정이 계속 들었고
자습을 자바의 정석으로 했었는데 알고보니 처음 보기에는 어려운 책이라고 했다.. 어쩐지 페이지 넘기기가 힘들더라니..ㅎ
그래도 예습을 해서 이 정도로 버텼던 것 아닐까 싶고 여기서 빨리 넘어가서 놓쳤던 부분은 다시 따로 공부해서 또 글 남기면 되니까!
완벽하게 하고 넘어갈 수 는 없다고 생각하니까 마음의 짐이 조금 덜어졌다.
아직 이틀차지만 힘내보기
Leave a comment