-사칙연산자: +, -, *,/,%(몫은 버리고 나머지만 남김)
-복합연산자: +=, *=, /=, %=
-증감연산자: ++, --
int result = 10+20-30*40/50%60;
나머지 연산
result = 10/3;
System.out.println(result);
result = 10%3;
System.out.println(result);
5개의 산술연산자를 사용해 5개의 연산을 수행 후 결과를 출력해 주세요
int a = 10+20;
System.out.println(a);
int b = 10-20;
System.out.println(b);
int c = 10/20;
System.out.println(c);
int d = 10%20;
System.out.println(d);
int e = 10*20;
System.out.println(e);
복합연산자: 연산과 대입 동시 수행
result=result+3;
System.out.println(result);
result += 3;
System.out.println(result);
result -= 5;
System.out.println(result);
result *= 2;
System.out.println(result);
아래의 문장을 복합연산자를 사용한 문장으로 만들어주세요
//result=result+10;
result+=10;
//result=result%5;
result%=5;
//result=result-23;
result-=23;
증감연산자
증가연산자(++): 변수의 값을 1증가시킨다.
감소연산자(--): 변수의 값을 1감소시킨다.
int i = 0;
++i; //전위형: 변수의 갋을 읽어오기 전에 1증가된다. 읽은 값 1
i++; //후위형: 변수의 갋을 읽어오기 전에 1증가된다. 읽은 값 0
i = 0;
System.out.println("++i = "+ ++i);
i = 0;
System.out.println("i++ = "+ i++);
System.out.println(i);
피연산자의 타입이 서로 같아야만 연산이 가능하다.
int _int = 10;
double _double = 3.14;
double result2 =_int + _double; // 형변환을 해서 이상없이 작성 가능
double result2 =(double)_int + _double; //더블로의 형변환이 생략된것
byte _byte = 5;
short _short = 10;
_int = _byte + _short;
// int보다 작은 타입은 int(4바이트)로 형변환된다.
char _char1 = 'a';
char _char2 = 'b';
_int = _char1 +_char2;
System.out.println(_int);
오버플로우, 언더플로우 //표현범위를 벗어나는 값을 표현할 때 발생하는 현상
byte b = 127;
b++;//가장 큰 값을 벗어나는것
System.out.println(b);
b--;//가장 작은 값을 벗어나는것
System.out.println(b);
다음을 한줄씩 계산해서 최종 결과값을 출력해주세요
//1. 123456+65432
//2. 1번의 결과값*123456
//3. 2번의 결과값/123456
//4. 3번의 결과값 - 654321
//5. 4번의 결과값%123456
long a = 123456+65432;
a *= 123456;
a /= 123456;
a -= 654321;
a %= 123456;
System.out.println(a);
3개의 int 형 변수를 선언 및 초기화 후 합계와 평균을 구해주세요
int _int1 = 10;
int _int2 = 20;
int _int3 = 30;
int sum=_int1+_int2+_int3;
double avg= sum /3.0;
// sum과 3이 모두 int라서 int가 나올 수 밖에 없으므로 3.0으로 바꿔줌
System.out.println("합계: "+sum+" / 평균"+ avg);
< > <= >= ==(같다) !=(같지않다)
문자열 비교: equals( )
int x = 10;
int y = 20;
boolean b = x < y;
System.out.println(b);
b= x <= y –15;//산술연산 먼저 수행 후 비교 연산 실행
System.out.println(b);
String str1 = "abc";
// 참조형 타입 스트링은 실제 값이 들어있는 것이 아니라 주소 값이 들어있는 것
String str2 = "ABC";
b= str1 == str2; // 주소를 비교하는 것
System.out.println(b);
b=str1.equals(str2); // 1이 2와 같을 경우
System.out.println(b);
b=!str1.equals(str2); // 1이 2와 같지 않을 경우
System.out.println(b);
다음의 문장들을 코드로 작성
x는 y보다 작거나 같다.
b= x <= y;
x+5와 y는 같다.
b= x+5 == y;
y는 홀수이다.
b = y%2 ==1;
"기본형"과 "참조형"은 다르다.
b=!"기본형".equals("참조형");
&&(AND), ||(OR), !(NOT)
피연산자로 boolean만 허용한다.
//&&(AND) 둘 다 트루여야댐
//||(OR) 둘 중 하나만 참이여도 참
//!(NOT) 참값 거짓으로 거짓을 참으로
int x = 10;
int y = 20;
boolean b = 0 < x && x < 10 || x < y; //&& 후 || 실행
b= !(x < y);
//논리연산자는 효율적인 연산을 함
b= true && true; // t
b= true && false; //f
b= false && true; //f
b= false && false; //f
//&&는 둘 다 f여야 f이기 때문에 하나라도 f이면 나머지는 확인하지 않는다.
b= true || true; // t
b= true || false; //t
b= false || true; //t
b= false || false;//f
// 왼쪽 피연산자에서 결과가 정해지면 오른쪽은 수행 안함
int a = 10;
b= a < 5 && 0 < a++; // ++은 의도대로 작성되지 않을 수도 있다.
System.out.println(a);
1. x가 y보다 크고 x가 10보다 작다.
b = x > y && x < 10;
2. x가 짝수이고 y보다 작거나 같다.
b = x % 2 == 0 && x <= y;
3. x가 3의 배수이거나 5의 배수이다.
b = x % 3 == 0 || x % 5 == 0;
비트 연산자(비트는 컴퓨터가 표현할 수 있는 가장 작은 단위)
| & ^ ~ << >>
비트 단위로 연산한다
.(참조연산자) : 특정 범위 내에 속해 있는 멤버를 지칭할 때 사용
?:(삼항연산자) : 조건식? 조건식이 참일 경우 수행: 조건식이 거짓일 경우 수행
1byte: 01010101; 여기서 숫자 하나하나를 비트라고 한다.
System.out.println(10 | 15);
10: 00001010 -> 10을 2진수로 표현한것
15 :00001111 -> 15을 2진수로 표현한것
00001111
int x = 10;
int y = 20;
int result = x < y ? x : y;
//조건식(?앞에 있는것)에 따라 둘 중 한 문장만 수행
System.out.println(result);
//주민등록번호 뒷자리의 첫번째 숫자가 1이면 남자 2면 여자
//삼항연산자
int regNo =3;
String gender = regNo == 1? "남자" : "여자";
System.out.println("당신의 성별은"+gender+"입니다.");
gender = regNo == 1 ? "남자" : (regNo == 2? "여자" : "확인불가");
System.out.println("당신의 성별은"+gerder+"입니다.");
2개의 숫자를 입력받고 둘 중 더 큰 숫자를 출력해 주세요
Scanner sc = new Scanner(System.in);
System.out.println("숫자입력>");
int num1 = Integer.parseInt(sc.nextLine());
System.out.println("숫자입력>");
int num2 = Integer.parseInt(sc.nextLine());
System.out.println(num1<num2 ? num2 : num1);
Scanner sc = new Scanner(System.in);
System.out.println("숫자입력>");
int num1 = Integer.parseInt(sc.nextLine());
gerder = num1 == 1 || num1 == 3 ? "남자"
:num1 == 2 || num1 == 4? "여자" : "확인불가";
System.out.println(gerder);