2023.05.17 - [JAVA기초] - operator (연산자)
operator (연산자)
2023.05.17 - [JAVA기초] - Wrapper Class Wrapper Class 2023.05.09 - [JAVA기초] - 자료형(데이터타입) 변수 선언, Wrapper클래스 자료형(데이터타입) 변수 선언, Wrapper클래스 자바개발환경세팅 2023.05.08 - [취업반 기
ji7290.tistory.com
이전 글은 비교연산을 다뤘다.
그다음 논리연산부터 배워보자
bo1이 true이고 bo2는 false라고 가정할때 ( &&and연산) 은 두 조건이 모두 true이여야 true을 나타낸다.
같은 조건으로 bo1이 true이고 bo2가 false일때 || OR연산은 두 조건 중 하나라도 true이면 true를 나타낸다.
&&(AND)연산
<설명>
gender 변수에 할당을 하고 age변수에 25를 할당시킨뒤 boolean으로 equals를 이용해서
gender가 문자열 "남성"과 같고 age가 20보다 크거나 같다면 flag변수는 참을 출력시킨다.
# AND연산은 대상이 있어야 대상의 조건을 체크한다.
AND연산은 첫번째 조건이 거짓이면 두번째 조건의 결과에 상관없이 전체조건이 거짓
<설명>
a++ : 후치 (대입을먼저) + ++b(증가를먼저) = 4
a + b 가 0보다 크기때문에 false 이므로 두번째 조건을 아예 수행하지않는다.
그래서 c와 d의 값이 바뀌지않는다.
|| OR연산
<설명>
cash변수에 10000을 할당시키고 hasCard변수에 true를 넣어준다.
flag2변수에 boolean타입으로 cash가 5000보다 크거나 같거나 || hasCard (카드를 가지고있다)가 참이면
flag2는 true를 출력시킨다.즉, 두 조건 중 하나라도 true라면 true를 출력한다.
OR연산은 첫번째 조건이 참이면, 두번째 조건의 결과에 상관없이 전체조건이 참.
<설명>
첫번째 조건에서 a는 6이다 a가 b보다 크기때문에 true , 두번째 조건은 d와 c를 곱하고 0이아님을 출력하는데
첫번째조건에서 이미 true이기 때문에 두번째 연산을 수행하지않는다.
!(NOT)연산
flag1에 true를 할당시키고 !not연산으로 결과를 뒤집는다.
not연산은 제어문의 조건으로 활용할때 !flag 형식으로 사용하거나
flag == false 형식으로 사용할 수 있다.
삼항연산자 A ? B : C
A 조건이 참이면 B값으로 결정하고, 아니면 C값으로 결정한다
조건에 따라 서로 다른값 중 하나를 결정짓는 연산자
if는 조건에 따라서 서로 다른 코드를 수행하는 것이 목적 (행위)
삼항연산자는 두개의 값 중 하나를 결정하는 것이 목적 (값)
삼항연산은 바로 출력할 수 도있고, 변수에 대입시켜서 출력시킬 수 도 있다.
잘못된 예시
이코드는 함수를 사용하는 것이 아니고 출력하는 그자체. 즉, 행위 에 속한다.
<설명>
import를 사용해서 변수 n1과 n2를 9까지 랜덤으로 정수를 받고
내장함수인 Integer를 이용해서 answer의 참조타입을 정수로 바꿔준뒤 입력으로 할당시킨다.
1. 삼항연산자를 이용해서 둘 중 하나를 출력 해줄 수 도있고
( ex. 둘 중하나, 동전의 앞/뒤, 전원 on/off , 로그인/로그아웃 등)
2. 분기문을 사용해서 출력해줄 수 있다.
한 줄과 여섯 줄의 차이
Quiz
정수 하나를 입력받아서 삼항연산을 사용해서 짝수와 홀수를 출력하고
입력값이 0이라면 "잘못된 입력입니다" 를 출력한다.
<설명>
조건문을 사용해서 if와 else문으로 코드를 작성해줬다.
만약 n이 0이라면 "잘못된입력입니다"를 출력하고
삼항연산자를 사용해서 n을 2로 나눴을때 0으로 떨어지면 "짝수" 거짓이면 "홀수"를 출력한다.
System.out.print는 줄을 바꾸지않기때문에 두번째 코드의 println의 B가 붙어서 출력된다.
print()와 println은 하나의 값만 출력할 수 있고, 연산을 먼저 처리한다.
printf()는 값을 뒤에서 여러값을 순서대로 채운다. 여기서 f는 format
%s이면 문자열의 값을 채워주고 %d이면 정수의 값을 , %.f이면 실수의 값을 채워준다.
-FORMAT-
디스크를 포맷한다는 것은 디스크의 형식을 재지정한다는 것이다.
파일의 형식을 재지정하는 것이다.(밭을 간다는 개념)
ex) "요즘 대형차들이 많아서 주차장의 금을 덮고 좀 넓게 다시 그려야 겠어"
리눅스든 윈도우든 os마다 형식을 지정하는 방식이 다르다.
ex) 건물을 지을때 상가용인지 주거용인지 다른 것처럼.
서식제어문자
printf 혹은 String.foramt 함수를 사용할 때 다른 값을 채워넣을 수 있는 빈 칸을 만들어주는문자
서식제어문자는 맞는 자료형의 값을 전달해야한다.
잘못된 예
%f는 실수형서식제어문자라서 코드상에는 아무문제가 없는 것처럼 보이지만.
컴파일에러가 뜬다 -> 3.14의 쌍따옴표를 빼줘야한다.
서식제어문자
%s : String, 문자열을 출력한다
%d : decimal, 정수를 10진수 형식으로 출력한다
%o : octal, 정수를 8진수 형식으로 출력한다
%x : HexaDecimal, 정수를 16진수 형식으로 출력한다
%f : floating number, 실수를 출력한다
%c : character, 정수에 맞는 글자를 출력한다
79라는 숫자를 서식제어문자를 이용해서 16진수,8진수, 정수,로 변환해줄 수 있다.
서식을 활용해서 날짜 및 시간을 출력할 수 있다.
변수 MM은 5가 할당되어있지만 포맷에서 %02d로 지정해줬기에 0이붙어서05가 된다.
실수는 그냥 출력하면 기본 소수점 이하 6자리 까지 출력하게 되어있다.
%.1f는 소수점 첫째 자리 %.2f 는 둘째 ㅁ
%.0f는 소수점을 표현하지않고 정수형식 인것 처럼출력하겠다는의미이다.
자바의 모든 데이터는 문자열로 표현가능하기 때문에, 어떤 형식이든 %s로 출력할 수 있다.
object클래스의 toString() 이라는 함수때문
'JAVA기초' 카테고리의 다른 글
제어문과 분기문(control statement) (1) | 2023.05.19 |
---|---|
이스케이프 시퀀스, 자바의 입력객체, scanner, buffer (0) | 2023.05.18 |
operator (연산자) (2) | 2023.05.17 |
Wrapper Class (0) | 2023.05.17 |
자료형(데이터타입) 변수 선언, Wrapper클래스 (0) | 2023.05.09 |