[JAVA] 연산자

유희옥·2023년 1월 12일
0

JAVA

목록 보기
2/3
post-thumbnail

연산자

: 연산을 수행하는 기호

피연산자

: 연산자의 작업대상 (변수, 상수, 리터럴, 수식)

package kh.java.func;

public class Func {

	public void print1() {
		//정수 1 출력
		System.out.println(1);
		//실수 1 출력
		System.out.println(1.0);
		//문자 1 출력
		System.out.println('1');
		//문자열 1 출력
		System.out.println("1");
	}//print1 메소드 종료 괄호
	public void print2() {
		
		System.out.println(1+1); //2
		System.out.println(1.0+1.0);//2.0
		//문자'1'은 유니코드에서 49. 문자를 더하기 연산 한 경우 해당 문자열에 일치하는 정수값으로 변환 후 더하기 연산 진행 49+49로 연산되어 결과는 98
		System.out.println('1'+'1');//
		System.out.println("1"+"1");//11
		
		System.out.println(1-1);//0
		System.out.println(1.0-1.0);//0.0
		System.out.println('1'-'1');//0
		//System.out.println("1"-"1");
		//문자열은 숫자연산이 아니므로 +이외의 연산이 불가능
	}
	public void print3() {
		//자바는 연산 시 같은 자료형끼리만 연산가능
		//다른 자료형 연산 시 범위가 큰 자료형으로 자동변환하여 연산
		System.out.println(1+1.1);//실수2.1
		//1+1.1 => 1.0+1.1 = 2.1
       		정수+실수는 결과값이 실수이므로 실수연산
            
		System.out.println(1+'1');//정수 50
		//1+'1' => 1+ 49 = 50
        	정수+문자는 문자를 정수로 변환하여 정수연산
            
		System.out.println(1.1+'1');//실수 50.1
		//1.1+'1' => 1.1 + 49 => 1.1=49.0 = 50.1
        	실수+문자는 문자를 정수로 변환한후 실수연산
            
        System.out.println("HI"+1);//문자열 HI1
        //문자열은 다른자료형과도 +연산만 가능
		//문자열은 우선수위가 높아서 다른 데이터를 문자열로 변환해 문자열+문자열 연산
	}
	public void print4() {
		//문자열은 다른자료형과도 +연산만 가능
		//문자열은 우선수위가 높아서 다른자료형이 모두 문자열로 변경
		System.out.println(1+"1");
		//1+"1" => "1"="1" = "11"
        
		System.out.println(1.0+"1");
		//1.0+"1" => "1.0"+"1" = "1.01"
        
		System.out.println('1'+"1");
		//'1'+"1" => "1" + "1" = "11"
	}
	
	public void print5() {
		System.out.println("Hello"+10);//Hello10
		System.out.println(10+"Hello");//10Hello
		System.out.println(10+20+"Hello");//30Hello
		System.out.println(10+(20+"Hello"));//1020Hello
		
	}
}//Func 클래스 종료괄호

종류연산자우선순위
증감연산자++,--1순위
산술연산자+,-,*,/,%2순위
시프트연산자>>,<<,>>>3순위
비교연산자>,<,>=,<=,==, !=4순위
비트 연산자&,,^,~
논리 연산자&&,
삼항 연산자?,:7순위
대입 연산자=, *=, /=, %=, +=, -=8순위

package kh.java.func;
import java.util.Scanner; 
public class Oper {
	public void test1() {
		//복합대입연산자(+=,-=,*=,/=,%=)
		int num = 10;
		System.out.println("num: " +num);
		num +=5;//-> num = num +5;
		System.out.println("num : "+num);
		num *= 3;//-> num = num*3
		System.out.println("num: "+num);
		//증감연산자
		num++;//num의 값을 1증가시킴
		System.out.println("num : " +num);
		++num;//num의 값을 1증가시킴
		System.out.println("num : " +num);
		num--;//num의 값을 1감소시킴
		System.out.println("num : " +num);
		--num;//num의 값을 1감소시킴
		System.out.println("num : " +num);
		//증감연산자의 연산 순서
		int num1 = 10;
		//변수++ : 후위연산(증감연산자가 변수 뒤에 위치할때)
		//후위연산 : 인접연산을 먼저 수행한 후 자기자신을 증/감
		//int num2 = (num1++)+2;
		//++변수 : 전위연산 (증감연산자가 변수 앞에 위치할때)
		//전위연산 : 자기자신을 증/감 한 후 인접연산 수행
		int num2 = (num1++)+2;
		
		System.out.println("num1 : " +num1);
		System.out.println("num2 : " +num2);
		
		int a = 10;
		int b = 10;
		int c;
		c=(a++)+(++b)+a;
		//c=[10+11](인접연산 끝)+11(인접연산 없음으로 11)
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		
	}
	public void test2() {
		Scanner sc = new Scanner(System.in);
		System.out.print("첫번째 정수 입력 : ");
		int num1 = sc.nextInt();
		System.out.print("두번째 정수 입력 : ");
		int num2 = sc.nextInt();
		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));
		System.out.println("num1!=num2 : "+(num1!=num2));
	}
	public void test3(){
		Scanner sc = new Scanner(System.in);
		System.out.print("첫번째 수 입력 : ");
		int num1 = sc.nextInt();
		System.out.print("두번째 수 입력 : ");
		int num2 = sc.nextInt();
		System.out.print("세번째 수 입력 : ");
		int num3 = sc.nextInt();
		System.out.print("네번째 수 입력 : ");
		int num4 = sc.nextInt();
		boolean result1 = num1<num2;
		boolean result2 = num3<num4;
		System.out.println("result1 : "+result1);
		System.out.println("result2 : "+result2);
		System.out.println("result1&&result2 : "+(result1&&result2));//둘다 true일때 true
		System.out.println("result1||result2 : "+(result1||result2));//둘중 하나라도 true
		System.out.println("!result1 : "+!result1); //결과값의 반대
	}
		public void test4(){
			Scanner sc = new Scanner(System.in);
			System.out.print("첫번째 정수 입력 : ");
			int num1 = sc.nextInt();
			System.out.print("두번째 정수 입력 : ");
			int num2 = sc.nextInt();
			int result = num1<num2?num1:num2;
			System.out.println("result : "+result);
		}
		
		public void test5() {
			Scanner sc = new Scanner(System.in);
			System.out.print("나이를 입력하세요 :");
			int age = sc.nextInt();
			//삼항 연산자 -> 조건식?true인경우:false인경우;
			//성인인 조건 -> 입력받은 나이가 19살보다 많은지 확인
			//age>19?"성인입니다.":"미성년자입니다";
			String str = age>19?"성인입니다. 어서오세요":"미성년자는 입장불가입니다";//변수에 저장하여 불러옴
			System.out.println(str);
			System.out.println(age>19?"성인입니다. 어서오세요":"미성년자는 입장불가입니다");//변수에 저장안하고 사용
			
			
		}
		
}
profile
기록자

0개의 댓글