-산술연산자

+ 덧셈 연산자
- 뺄셈 연산자
* 곱셈 연산자
/ 나누기 연산자
% 나머지 구하는 연산자. 정수 연산일때만 연산이 가능하다.

 

-간단한 계산기

Scanner scan = new Scanner(System.in);

System.out.println("** 간단한 계산기 **");
System.out.println("===================");

int num1 = 0, num2 = 0, result = 0;

System.out.print("첫 번째 수 : ");
num1 = scan.nextInt();
System.out.print("두 번째 수 : ");
num2 = scan.nextInt();

result = num1 + num2;
System.out.println("덧셈 결과 : " + result);
result = num1 - num2;
System.out.println("뺄셈 결과 : " + result);
result = num1 * num2;
System.out.println("곱셈 결과 : " + result);
result = num1 / num2;
System.out.println("나눗셈 결과 : " + result);
result = num1 % num2;
System.out.println("나머지 : " + result);

같은 데이터 타입이면 ,로 여러개 한번에 사용할 수 있다.

 

-증감 연산자

단항 연산자이며, 변수의 좌측이나 우측 한 군데에만 온다.

++ 1씩 증가 시키는 연산자
-- 1씩 감소 시키는 연산자


예시)

 

int i = 0;
i++;		//i에 있는 값을 불러와서 1을 더해준 뒤 다시 i에 대입한다.

 

이런 순서대로 발전함

1) i = i + 1; 

2) i += 1;
3) i++;

 

-전위형, 후위형

int j = 0;
int k = 0;
int l = 0;

++j;
//k = j++;			//값이 먼저 대입이 돼서 k가 0이 됨. 값을 꺼내서 사용하는걸 먼저하고 연산함
System.out.println("후위연산 : " + j);
j = 0;
//l = ++j;			//증가하고 대입이 되기 때문에 1이 됨. 꺼내서 연산하고 대입하도록 사용됨
System.out.println("전위연산 : " + j);

System.out.println(k + ", " + l);

따로 계산 먼저하고 대입을 시키는게 더 편리하다.

 

-비교연산자

결과는 boolean으로 나오기 때문에 true, false로 나옴

크다, 작다, 같다, 같지않다. ('~~하다'라기 보다는 '~~냐?'라는 의문)

==, !=, >, >=, <, <=

int n1 = 4, n2 = 5;

System.out.println(n1 == n2);
System.out.println(n1 != n2);
System.out.println(n1 > n2);
System.out.println(n1 >= n2);
System.out.println(n1 < n2);
System.out.println(n1 <= n2);

boolean b = (n1 == n2);
System.out.println(b);

 

-논리연산자

결과는 boolean으로 나온다. true, false가 나오는 수식들을 연결하기 위해 사용한다.

AND(논리곱) &&
OR(논리합) ||

cf. &, | 하나만 사용할 경우, 비트연산자로 사용된다.

 

예시)메뉴 번호 1~4 이외의 값을 눌렀을 때 false가 나오는 프로그램

Scanner scan2 = new Scanner(system.in);

int number scan2.nextInt();

boolean bb = false;

bb = (number > 0) && (number < 5);	//0과 5사이의 값이 들어오면 true
number++;

System.out.println(bb);

 

bb = (number > 0) && (number++ < 5);	
bb = (number <= 0) || (number >= 5);	

- && 앞이 거짓이면 연산 작동을 하지 않을 수도 있다. 오류가 발생하는 리스크를 줄이기 위해 논리연산 비교식에서는 증감 사용을 따로 사용하는 것이 효율적이다.

- 0과 5 사이의 값이 들어오면 false가 나온다.

 

-입력한 값이 숫자인지 문자인지 판별하는 프로그램

char ch = '\0';					//null(널) 문자로 초기화.비어있는 char 변수 생성
String str = sca2.next();			//문자열 입력받기
ch = str.charAt(0);				//0번 위치에 있는 값 꺼내옴

boolean bbb = ((ch >= 'a') && (ch <= 'z'))	//참이면 (소)문자
	|| ((ch >= 'A') && (ch <= 'Z'))		//참이면 (대)문자
            
System.out.println(bbb);

논리연산자 사용시 괄호로 묶어주지 않으면 순서가 꼬여버리기 때문에 괄호로 범위를 정해주어야한다.

 

-윤년계산기

System.out.println("=====윤년계산기====");
System.out.print("연도를 검색 > ");
int year = scan2.nextnt();
String result = null;

boolean yoon = (((year % 4) == 0)
		&&((year % 100) != 0))	//99년가지는 여기로만 사용 가능함
    	 	||((year % 400) == 0);

윤년의 조건을 만족해야 한다.

1) 4년마다 한번씩 온다. 2) 100년마다 오지 않는다. 3)400년마다 온다.

 

-조건연산자

수식/변수/리터럴이 세개가 들어가는 삼항 연산자이다.

(조건식) ? A : B ; -> 조건식이 true일 경우 A 실행

                          조건식이 false일 경우 B 실행 

 

-절대값 구하기(-10 => 10)

int x = -10;
int absX = 0; //구해진 절대값 저장하는 변수

absX = (x >= 0) ? x : -x ;

System.out.println(absX);

x에 입력된 값이 0보다 크거나 같으면 그대로 출력되고, 작으면 -되어 절대값으로 출력된다.

 

-학점 PASS FAIL 프로그램

x = scan2.nextInt();
String grade = (x >= 60) ? "PASS" : "FAIL" ;
System.out.println(grade);

 

-학점 프로그램 (중첩 사용)

x = scan2.nextInt();
grade = (x >= 90) ? "A":
	((x >= 80) ? "B" : "C" );
System.out.println(grade);

 

 

 

 

 

 

 

 

+ Recent posts