본문 바로가기

Programming Language/JAVA

[JAVA/기초] java 연산자(산술연산자, 증감연산자,대입연산자, 관계연산자, 논리연산자 등) + 퀴즈문제

 

 

 연산자

 

 

 

 

 

 

 

 

 

 산술 연산자

% 연산자 사용
- 짝, 홀수 구분
9 % 3 = > 0 이므로 짝수
10 % 3 => 1이므로 홀수
- 배수 구분
123 % 3 => 0이므로 3의배수

 

 

 

 

 


 

 

package day02;

public class Test03 {

	public static void main(String[] args) {
		int num1 =9, num2=2;
		System.out.println(num1+"+"+num2+"="+(num1+num2));
		System.out.println(num1+"-"+num2+"="+(num1-num2));
		System.out.println(num1+"*"+num2+"="+(num1*num2));
		System.out.println(num1+"/"+num2+"="+(num1/num2));
		System.out.println(num1+"%"+num2+"="+(num1%num2));
		
	}

}

* 산술연산자 설명

num1과 num2의 변수(일종의 별명)을 각가 9와 2를 저장시켜줍니다.
앞서 배운 System.out.println을 통해 num1과 num2의 합을 구해주는 산술연산자를 사용합니다.
(이때, 각각 변수와 ""는 +기호를 이용해 이어줍니다.)

 

 

 

 

 

package day02;

public class Test04 {

	public static void main(String[] args) {
		int su1, su2;
		su1=su2=5;
		System.out.println("su1+1="+(su1+=1));
		System.out.println("su1-1="+(su1-=1));
		System.out.println("su1*su2="+(su1*=su2));
		System.out.println("su1/su2="+(su1/=su2));
		System.out.println("su1%su2="+(su1%=su2));
		System.out.println(su1);
		System.out.println(su2);
	}

}

* 산술연산자 설명
su1과 su2를 int형타입으로 모두 5라는 숫자를 저장시켜줍니다.
이번에는 대입 연산자를 통해서 su1=su1+1을 su1+=1로 입력해줄수있으므로, su1+=1로 입력해봅니다.
다른 연산자도 이와동일하게 입력해줍니다.
마지막 메시지출력할때는 최종적으로 연산이 다끝난 su1과 su2의 값이 저장됩니다.
+ 마치 학교로 생각하면 1-3반(su1)에 학생이 5명인데, 1명이 전학을와서 6명이되고, 
이번에는 1명이 전학을 가면 5명이 되고, 현재 1-3반에는 5명이있게됩니다.
나머지 연산도 비슷합니다!!

 

 

 

 

package day02;

public class Test03 {

	public static void main(String[] args) {
		int num1 =9, num2=2;
		System.out.println(num1+"+"+num2+"="+(num1+num2));
		System.out.println(num1+"-"+num2+"="+(num1-num2));
		System.out.println(num1+"*"+num2+"="+(num1*num2));
		System.out.println(num1+"/"+num2+"="+(num1/num2));
		System.out.println(num1+"%"+num2+"="+(num1%num2));
		
	}

}

* 관계 연산자 설명
이번에는 double형(실수)타입의 do1변수에 3.0을, do2에 3.1을 저장시켜줍니다.
그리고나서 메시지출력으로 do1과 do2를 비교해줍니다.
마지막 !=은 생소하실겁니다.
!=은 do1과do2의 크기가 같지않다면 이라는 의미입니다.

 

 

 

 

● 논리 연산자

 

 

 

 

package day02;

public class Test06 {

	public static void main(String[] args) {
		System.out.println("false || false : " + (false||false));
		System.out.println("false || true : " + (false||true));
		System.out.println("true || false : " + (true||false));
		System.out.println("true || ture : " + (true||true));
		
		System.out.println("!true :" + !true);
		System.out.println("!false :" + !false);
	}

}

* 논리연산자 설명 ------ (설명하기 편하게 거짓(false)과 참(true)로 설명하겠습니다.)
논리연산자는 and(&&)와 or(||)이라고 생각하면 됩니다.
OR 실습은 아래 와 같습니다.
거짓 || 거짓 = 거짓
참 || 거짓 = 참
거짓 || 참 = 참
참 || 참 = 참
!는 not으로써, true의 반대는 false가 출력
false의 반대는 true출력이다.

 

 

 

 

 

 

 

package day02;

public class Test07 {

	public static void main(String[] args) {
		System.out.println("false && flase : " + (false && false));
		System.out.println("false && true : " + (false && true));
		System.out.println("true && flase : " + (true && false));
		System.out.println("true && true : " + (true && true));
	}

}

* 논리연산자 설명 ------ (설명하기 편하게 거짓(false)과 참(true)로 설명하겠습니다.)
논리연산자는 and(&&)와 or(||)이라고 생각하면 됩니다.
AND 실습은 아래 와 같습니다.
거짓 || 거짓 = 거짓
참 || 거짓 = 거짓
거짓 || 참 = 거짓
참 || 참 = 참

 

 

 

 

● 증감연산자

* ++a는 전치 표기로써, a=a+1을 먼저 처리한다.
* a++는 후치 표기로써, a데이터를 사용한 후, a=a+1을 처리한다.

 

 

 

 

System.out.println("su2++ =" + su2);package day02;

public class Test08 {

	public static void main(String[] args) {
		int su1;
		double su2;
		
		su1=5; ++su1;
		System.out.println("++su1 =" + su1);
		su1=5; su1++;
		System.out.println("su1++ =" + su1);
		su2=11.2; ++su2;
		System.out.println("++su2 =" + su2);
		su2=11.2; su2++;
		System.out.println("su2++ =" + su2);
	}

}

su1과 su2의 변수를 각각 int와 double형으로 만들어줍니다.
출력은 아래와같습니다.
++su1 =6
su1++ =6
++su2 =12.2
su2++ =12.2

 

 

 

package day02;

public class Test09 {

	public static void main(String[] args) {
		int su1,su2,su3;
		
		su1 = 10; su2 = ++su1;
		su1 = 10; su3 = su1++;
		System.out.println("su2="+su2);
		System.out.println("su3="+su3);
	}

}

이 실습을 보시면 증감연산의 전치,후치 이해가 쉬울수있습니다.
우선, 출력값을 먼저 보여드리겠습니다.
su2=11
su3=10
1. su1은 10이 저장되어있고, su2에 전치로 값을 저장시켜줍니다. 전치이기에 숫자를 증감하고 저장합니다.
2. su1은 10이 저장되어있고, su3에 후치로 값을 저장시켜줍니다. 후기이기에 숫자를 저장하고 증감시킵니다.

 

 

 

 

package day02;

public class Test10 {

	public static void main(String[] args) {
		int su;
		su = 8;
		String s = (su%2==0)?"짝수":"홀수";
		System.out.println(su+"="+s);
		
		su = 9;
		s = (su%2==0)?"짝수":"홀수";
		System.out.println(su+"="+s);
	}

}

* 산술연산자 설명
처음 su에 8을 저장합니다.
(su%2로 나누어서 나머지가 0일경우) ? (참이면 "짝수") : (거짓이면 "홀수") 
라는 의미입니다.
짝수 or 홀수를 String 타입인 s변수에 저장해줍니다.
s를 메시지로 출력해줍니다.
이번에는 su를 9로 다시 덮어쓰기로 저장해주고,
String타입으로 s를 이미 위에서만들었기에 다시 s에 조건을 맞춰줍니다.
그값을 메시지로 출력해줍니다.

 

 


 

 

↓ Q. 수를 입력받아 짝,홀수를 구분해서 출력해주세요.  ↓

(조건, 수를 입력받아 3의 배수이면 출력해주고, 다음으로 두수를 입력받아 큰수를 출력해주세요.)

 

 

 

 

 

 

 

 

↓ 정답 ↓

package day02;

import java.util.Scanner;

public class Test11 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int num1, num2;
		
		System.out.print("수 입력 : ");
		num1 = input.nextInt();
		String s = (num1%2==0)?"짝수":"홀수";
		System.out.println(num1 + " = " + s);
		String f = (num1%3==0)?"3의배수가이다":"3의 배수가 아니다";
		System.out.println(num1 +"="+f);
		System.out.print("두 수 입력 : ");
		num1 = input.nextInt();
		num2 = input.nextInt();
		System.out.println("num1 : "+num1 +",num2 : "+num2);
		String d = (num1<num2)?"num2가 num1보다 크다":"num1이 num2보다 크다";
		System.out.println(d);
		
	}

}