본문 바로가기
자바(Java)/자바기초

[자바기초.002]연산자,형변환,입력

by 긱펀 2022. 7. 18.
반응형

 

[필수 기초 용어]
- 연산자(operator) : 어떤 기능을 수행(operate)하는 기호 (예: +, -, *, / 등)
- 피연산자(operand) : 연산의 대상이 되는 데이터 (ex 변수, 상수, 수식 등)

 

 

🚩[예제 1] 대입 연산자 & 산술 연산자

int x = 10;
  • 대입 연산자(=)는 왼쪽의 변수에 오른쪽의 수식 값(또는 계산 결과)을 저장하는 연산자이다.
  • x = 10; 은 변수 x에 상수 10을 대입(저장)한다는 뜻이다.
  • 산술연산자
연산자 기호 예시 의미
덧셈(add) + a + b a와 b를 더한다.
뺄셈(subtract) - a - b a 에서 b를 뺀다.
곱셈 * a * b a와 b를 곱한다.
나눗셈(몫) / a / b a를 b로 나눈 몫
나눗셈(나머지) % a % b a를 b로 나눈 나머지
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Main {
  public static void main(String[] args) {
    int n1 = 100;
    int n2 = 3;
    int r1,r2,r3,r4,r5;
    r1 = n1 + n2;
    r2 = n1 - n2;
    r3 = n1 * n2;
    r4 = n1 / n2;
    r5 = n1 % n2;
    
    System.out.println("n1 + n2 = " + r1); // 103
    System.out.println("n1 - n2 = " + r2); // 97
    System.out.println("n1 x n2 = " + r3); // 300
    System.out.println("n1 / n2 = " + r4); // 33
    System.out.println("n1 % n2 = " + r5); // 1
  }
}
cs

 

 

🏴 [유제 1] 정수형 변수 x1 = 100, x2 = 8 일때  산술 연산자를 이용해 아래와 같이 출력하는 프로그램을 만드세요.

실행결과
더보기
public class Main {
  public static void main(String[] args) {
    int x1 = 100;
    int x2 = 8;
    int r1,r2,r3,r4,r5;
    r1 = x1 + x2;
    r2 = x1 - x2;
    r3 = x1 * x2;
    r4 = x1 / x2;
    r5 = x1 % x2;
    
    System.out.println("x1 + x2 = " + r1); // 108
    System.out.println("x1 - x2 = " + r2); // 92
    System.out.println("x1 x x2 = " + r3); // 800
    System.out.println("x1 / x2 = " + r4); // 12
    System.out.println("x1 % x2 = " + r5); // 1
  }
}

 


 

🚩[예제 2] 복합 연산자

  • 복합 연산자란, 산술 연산자와 대입 연산자를 함께 붙여서 사용하는 연산자이다.
  • 복합 연산자를 사용하면 메모리 처리 속도가 더 빠르다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Main {
  public static void main(String[] args) {
    int a = 6;
    
    a += 3// a = a + 3
    System.out.println(a);
    a -= 3// a = a - 3
    System.out.println(a);
    a *= 3// a = a * 3
    System.out.println(a);
    a /= 3// a = a / 3
    System.out.println(a);
    a %= 3// a = a % 3
    System.out.println(a);
  }
}
cs

 

 

🏴 [유제 2] 복합 연산자를 이용해서 다음의 지시사항을 수행하는 프로그램을 코딩하세요.

[지시사항]
-정수형 변수 b의 초기값은 5 이다.
-위 값에 이어서 변수 b 값이 5만큼 증가한 값을 출력한다.
-위 값에 이어서 변수 b 값이 3만큼 감소한 값을 출력한다.
-위 값에 이어서 이어서 변수 b 값이 7배가 된 값을 출력한다.
-위 값에 이어서 변수 b 값을 3으로 나눈 몫을 출력한다.
-이 값에 이어서 변수 b 값을 3으로 나눈 나머지를 출력한다.
더보기
public class Main {
  public static void main(String[] args) {
    int b = 5;
    
    b += 5; // b = b + 5 // 10
    System.out.println(b);
    b -= 3; // b = b - 3 // 7
    System.out.println(b);
    b *= 7; // b = b * 7 // 49
    System.out.println(b);
    b /= 3; // b = b / 3 // 16
    System.out.println(b);
    b %= 3; // b = b % 3 // 1
    System.out.println(b);
  }
}

 


 

🚩[예제 3] 증감 연산자

  • 증감 연산자란, 피연산자를 1씩 증가 시키거나 감소시킬 때 사용하는 연산자이다.
  • 증감 연산자는 피연산자가 단 하나뿐인 단항 연산자이다.
증감 연산자 의미
++a a값을 먼저 1 증가시킨 후 다른 명령을 실행한다.
a++ a값을 먼저 사용한 후에 값을 1 증가 시킨다.
--a a값을 먼저 1 감소시킨 후에 다른 명령을 실행한다.
a-- a값을 먼저 사용한 후에 값을 1 감소 시킨다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Main {
  public static void main(String[] args) {
    int a = 0;
    int b = 1;
 
    System.out.println(a++); // 0
    System.out.println(++a); // 2
    System.out.println(--b); // 0
    System.out.println(b--); // 0
    
    int r1, r2; // a = 2, b = -1
    r1 = --+ 3// 1+3=4 (전위)
    r2 = b-- + 3// r2=-1+3, b=-2 (후위)
    System.out.println("r1=" + r1 + " ,a=" + a); // 4, 1
    System.out.println("r2=" + r2 + " ,b=" + b); // 2, -2
  }
}
cs

 

 

🏴 [유제 3] 아래의 표에 나와있는 줄 번호에서 출력되는 값을 말해보세요. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Main {
  public static void main(String[] args) {
    int x = 5;
    int y = -3;
 
    System.out.println(++x);
    System.out.println(y--);
    System.out.println(x++);
    System.out.println(--y);
    
    int r1, r2;
    r1 = x++ - 3;
    r2 = ++- 3;
    System.out.println("r1=" + r1 + " ,x=" + x);
    System.out.println("r2=" + r2 + " ,y=" + y);
  }
}
cs

 

줄 번호 출력 값
6  
7  
8  
9  
14  
15  
더보기
public class Main {
  public static void main(String[] args) {
    int x = 5;
    int y = -3;

    System.out.println(++x); // 6
    System.out.println(y--); // -3
    System.out.println(x++); // 6
    System.out.println(--y); // -5
    
    int r1, r2; // x = 7, y = -5
    r1 = x++ - 3; // 7-3=4, x=8 (후위)
    r2 = ++y - 3; // r2=-4-3=-7 (전위)
    System.out.println("r1=" + r1 + " ,x=" + x); // 4, 8
    System.out.println("r2=" + r2 + " ,y=" + y); // -7, -4
  }
}

 


 

🚩[예제 4] 관계 연산자

  • 관계 연산자란,  피연산자들의 상대적인 크기를 판단하는 연산자이다.
관계 연산자 사용 예시 의미
== a == b a와 b가 같은가? (같으면 true, 다르면 false 반환)
!= a != b a와 b가 다른가? (다르면 true, 같으면 false 반환)
> a > b a가 b보다 큰가? (크면 true, 크지 않으면 false 반환)
< a < b a가 b보다 작은가? (작으면 true, 작지 않으면 false 반환)
>= a >= b a가 b보다 크거나 같은가? (크거나 같으면 true, 작으면 false 반환)
<= a <= b a가 b보다 작거나 같은가? (작거나 같으면 true, 크면 false 반환)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Main {
  public static void main(String[] args) {
    int a = 2;
    int b = -1;
 
    System.out.println(a == b); // false
    System.out.println(a != b); // true
    System.out.println(a > b); // true
    System.out.println(a < b); // false
    System.out.println(a >= b); // true
    System.out.println(a <= b); // false
  }
}
cs

 

 

🏴 [유제 4] 아래의 표에 나와있는 줄 번호에서 출력되는 값을 말해보세요. 

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Main {
  public static void main(String[] args) {
    int a = 2;
    int b = -1;
 
    System.out.println(a == b);
    System.out.println(a != b);
    System.out.println(a > b);
    System.out.println(a < b);
    System.out.println(a >= b);
    System.out.println(a <= b);
  }
}
cs

 

줄 번호 출력 값
6  
7  
8  
9  
14  
15  
더보기
public class Main {
  public static void main(String[] args) {
    int a = 5;
    int b = 10;

    System.out.println(a == b); // false
    System.out.println(a != b); // true
    System.out.println(a > b); // false
    System.out.println(a < b); // true
    System.out.println(a >= b); // false
    System.out.println(a <= b); // true
  }
}

 


 

🚩[예제 5] 논리 연산자

  • 형변환 이란, 논리식을 판단하여 참(true)과 거짓(false)을 결정하는 연산자입니다.
  • 아래의 논리 연산자 표에서, 1은 참(true), 0은 거짓(false)를 의미합니다.

논리 연산자

논리 연산자 의미
&& 논리식이 모두 참이면 true, 둘 중 하나라도 거짓이면 false를 반환함.(AND 연산)
|| 논리식 중에서 하나라도 참이면 true, 둘 다 거짓이면 false를 반환함.(OR 연산)
! 논리식의 결과가 참이면 false, 거짓이면 true로, 반대값으로 반환함(NOT 연산)
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Main {
  public static void main(String[] args) {
    int a = 1;
    int b = 2;
 
    System.out.println(a > 0 && b == 2); // true
    System.out.println(a < 3 && b != 2); // false
    System.out.println(a == 1 || b < 0); // true
    System.out.println(a > 100 || b < -1); // false
    System.out.println(!(a == 1)); // false
    System.out.println(!(a > 0 && b < -2)); // true
  }
}
cs

 

 

🏴 [유제 5] 아래의 표에 나와있는 줄 번호에서 출력되는 값을 말해보세요. 

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Main {
  public static void main(String[] args) {
    int a = 9;
    int b = -5;
 
    System.out.println(a == 9 && b == -5);
    System.out.println(a > 3 && b != 2);
    System.out.println(a < 1 || b > 0);
    System.out.println(a > 100 || b < -1);
    System.out.println(!(b == 1));
    System.out.println(!(a < 0 || b < -2));
  }
}
cs
줄 번호 출력 값
6  
7  
8  
9  
10  
11  
더보기
public class Main {
  public static void main(String[] args) {
    int a = 9;
    int b = -5;

    System.out.println(a == 9 && b == -5); // true
    System.out.println(a > 3 && b != 2); // true
    System.out.println(a < 1 || b > 0); // false
    System.out.println(a > 100 || b < -1); // true
    System.out.println(!(b == 1)); // true
    System.out.println(!(a < 0 || b < -2)); // false
  }
}

 


 

🚩[예제 6] 연산자 우선순위

  • 연산자의 실행 순서에도 우선순위 규칙이 있습니다.
  • 가장 1등 우선순위로 만들려면 (괄호), [대괄호]를 해주면 됩니다.
  • 괄호외의 연산자 끼리의 우선순위는 아래 표와 같습니다.

연산자 우선순위 표(출처: 혼공 자바)

 

 

🏴 [유제 6] 


🚩[예제 7] 삼항 연산자

  • 삼항 연산자란, 3개의 항(피연산자)를 필요로 하면서 "(조건문) ? 참: 거짓"의 형태를 가지는 조건 연산자이다.
  • if~else를 한 줄로 줄여서 사용할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Main {
  public static void main(String[] args) {
    int a = 10;
    int b = 5;
    int n = -1;
 
    if(a > b) n = 1;
    else n = 0;
    System.out.println(n); // 1
 
    int k = (a > b) ? 1 : 0;
    System.out.println(k); // 1
  }
}
cs

 

 

🏴 [유제 7] 아래 지시사항을 삼항 연산자를 이용하여 코딩해 보세요.

[지시사항]
-두 개의 정수형 변수 x, y에는 각각 1, 2이 저장되어 있다.
-x가 y보다 크면 정수형 변수 z가 -1이고, 그렇지 않으면 z 가 -2가 된다.
-제일 마지막에 "z is -2" 이런 식으로 z 값을 출력하세요. 
더보기
public class Main {
  public static void main(String[] args) {
    int x = 1;
    int y = 2;

    int z = (x > y) ? -1 : -2;
    System.out.println(z); // -2
  }
}

🚩[예제 8] 형변환

  • 형변환 이란, 하나의 형(type)을 다른 형으로 바꾸는 것을 말한다.
  • 예를 들면, 실수형 3.14 => 정수형 3으로 바꾸는 것이다.
  • 자바에서는 boolean형을 제외한 나머지 기본 타입 간의 변환을 자유롭게 수행할 수 있다.
  • 형변환에는 자동적인 형변환과 강제적인 형변환이 있다.
[자동적인 형변환]
-피연산자 중 하나가 double이면 다른 피연산자도 double로 변환된다.
-float, long도 위 내용과 마찬가지로 각각 float이면 float으로, long이면 long으로 변환된다.
-double, float, long이 아닌 모든 피연산자는 int형으로 변환된다.
-데이터 손실이 없는 한에서 자동으로 형변환 된다.
자동 형변환
[강제적인 형변환]
public class Main {
  public static void main(String[] args) {
    // 문자 => 정수
    String strNum1 = "123";
    int intNum1 = Integer.parseInt(strNum1);
    System.out.println(intNum1 + 1); // 124

    // 숫자 => 문자
    int intNum2 = 123;
    String strNum2 = Integer.toString(intNum2);
    System.out.println(strNum2 + "4"); // 1234

    // 정수 <=> 실수
    double dNum1 = 1.1234567;
    double dNum2;
    int iNum1 = 12;
    int iNum2;

    iNum2 = (int)dNum1;
    dNum2 = iNum1; // 정수를 실수로 바꿀때는 캐스팅 필요x
    System.out.println(iNum2); // 1
    System.out.println(dNum2); // 12.0
  }
}​

 

 

 

728x90
반응형

댓글