책 p.26 ~ p.35
Operationn_02.java
//1. b1++
byte b1 =50;
b1++; // 자신의 타입을 그대로 유지하며 1더해짐 = 51
//2. b1 = b1+1
b1 = b1+1;
// 오류: b1+1 => byte + int => int + int
// => int는 byte에 넣기 위해 캐스팅
b1 = (byte)(b1+1);
//결론. 값은 같지만 b1++;이 더 간단
char c1 = 'A';
c1++; // 'B' , 같지만 더 복잡한 식 c1 = (char)(c1 + 1);
System.out.println(c1); // 'B'
++c1; // 'C'
//결론. 혼자 있을 때는 둘다 같다
int i1 = 40;
int i2 = 50;
int i3 = i1 + ++i2;
//51로 먼저 증가 시키고, 대입 후 계산 => 답: 91
int i3= i1 + i2++;
//50을 먼저 대입한 후, 증가됨. => 답: 90
//++이 앞에 오면: 먼저 증가 시키고, 대입 후 계산
//뒤에 ++이 오면: 먼저 대입 시키고, 계산 후 증가
class Qu2_6{
public static void main(String[] args){
//1. int형 변수 number를 선언, 30의 값으로 초기화
int number = 30;
//2. char형 변수 ch를 선언, 'C'의 값으로 초기화
char ch = 'C'; //67
//3. 출력결과
int result = number++ + 3 + ++ch + ++number;
//number++ + 3 + ++ch + ++number;
// 30 + 3 + 'D' + 32 (증가 후 대입)
//number:31 (68) number:32
(대입후증가)
System.out.println("number : " + number) // 결과: number : 32
System.out.println("ch : " + ch); // 결과: ch : D
System.out.println("result : " + result); // 결과; result : 133
byte b2 = 10;
byte b3 = (byte)~b2; // ~b2가 int로 자동변환되어서 byte로 캐스팅
System.out.println(b3); // -11
// 10 00001010
// ~10 11110101 => 1의 보수 -11
//~10+1 11110110 => 2의 보수 -10
// 보수: 각 자리의 숫자의 합이 어느 일정한 수가 되게 하는 수
https://www.opentutorials.org/module/3921/23761
와 이해가 절대안되네....
boolean power = false;
System.out.println(power); // false
//power의 값을 부정하여 다시 power변수에 저장하라.
power = !power
System.out.println(power); // true
int number = 30; 인데 ++number가 32가되는 부분이 이해가 안됩니다
조금만더 설명해주실수 있나요?