프로그래밍/Java 공부

연산자, 조건문(if, else if)

개발계발게발 2021. 5. 20. 17:11
반응형

연산자

자바의 연산자

 모든 프로그램이에서는 데이터를 연산하기 위해서 연산자를 사용한다.
 자바뿐만 아니라 모든 언어에서 비슷하게 사용된다.
 
 주의할점은 연산자의 기능과 순서
 연산자의 종류가 많기 때문에 모두 외우기 보다는
 자주 사용하면서 익숙해지는것을 추천
 
 아래 나열되어 있는 연산자의 종류는 그 순서대로 정의 한것
 
1. 최우선 연산자

  • .(점), dot 클래스 또는 객체 소유의 변수, 메소드 등을
      호출하는 연산자 ★★★중요★★★
  • [] 배열
  • () 

2. 단항 연산자

  •   ! 논리부정
  •   ~ 비트 반전
  •   +/- 부호연산
  •   ++/-- 선행 증감

3. 산술 연산자

  •   +, -, /, *, %(모듈러 - 나머지 값)

4. 쉬프트 연산자

  •   <<, >>, >>>

5. 관계 연산자

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

6. 비트  연산자

  •   &, |, ^

7. 논리 연산자

  • &&(AND), ||(OR)

8. 삼항연산 연산자

  •   조건식 ? 조건이 참일때 값 : 조건이 거짓일때 값

9. 배정대입 연산자

  •   =, /=, +=, -=, *=, ...    

10. 후행증감 연산자

  • ++/-- 

 

추가 ->

  •  1. 단항, 이항, 삼항 연산자 순으로 우선 순위를 가진다.
  •  2. 산술, 비교, 논리, 대입 연산자 순으로 우선 순위를 가진다.
  •  3. 단항과 대입연산자를 제외한 모든 연산자의 방향은 왼쪽에서 오른쪽.
  •  4. 복합 연산식에는 괄호()를 사용해서 우선순위를 정해준다.

 

연산자 우선 순위

 

 

public class Operator {
	public static void main(String[] args) {
		int num01 = 1;
		int num02 = ++num01;
		int num03 = --num01 + ++num02;
		int num04 = ++num01 - --num02;
	
		
		System.out.println(num01);// 2
		System.out.println(num02);// 2
		System.out.println(num03);// 4
		System.out.println(num04);// 0
		
		num01 = 0; num02 = 0; num03 = 0; num04 = 0;
		num02 = num01++;
		num03 = num02++ + num01;
		num04 = num03-- + num02++ + ++num01;
		
		System.out.println(num01);// 2
		System.out.println(num02);// 2
		System.out.println(num03);// 0
		System.out.println(num04);// 4
		}
}
  •    ++ 피연산자 : 다른 연산을 수행하기 전에 피연산자의 값을 +1
  •    -- 피연산자 : 다른 연산을 수행하기 전에 피연산자의 값을 -1
  •    피연산자 ++   : 다른 연산을 수행한 후에 +1
  •    피연산자 --   : 다른 연산을 수행한 후에 -1

 

논리 연산자

 

		boolean  check = true;
		System.out.println(check);
		
		check = !check;
		//check = !true;
		check = !(1 == 2);
		//check = 'A' == 'A';
		check = "String".equals("String");// .equals 문자열 값 비교
		System.out.println(check);
		
		check = 4 < 1;		
		System.out.println(check);
		
		// ! 참이면 거짓으로, 거짓이면 참으로
		
		//01010101110101010
		//10101010001010101
		
		int bitNum01 = 10; 
		
		System.out.println(bitNum01); // 10
		System.out.println(Integer.toBinaryString(bitNum01)); // 1010
		
		bitNum01 = ~10;
		
		System.out.println(bitNum01); //-11
		System.out.println(Integer.toBinaryString(bitNum01)); // 11111111111111111111111111110101
		
		/*
		   1	1
		   2	10
		   3	11
		   4	100
		   5	101
		   6	110
		   7	111
		   8	1000
		   9	1001
		   10	1010		   		 
		 */
		
		// 모듈러 : 나눈 후 나머지 값
		System.out.println(2 / 2);  // 1
		System.out.println(2 % 2);  // 0
		System.out.println(10 % 3); // 1
		System.out.println(11 % 3); // 2
		System.out.println(12 % 3); // 0
		System.out.println(13 % 3); // 1
		
		//사용자가 입력한 값 받아서 실행해보기
		int code = 0;
		//데이터 타입 변수명 = 값;
		Scanner sc = new Scanner(System.in);
		System.out.print("성별 코드를 입력하세요. _");
		//code = sc.nextInt();
		
		System.out.println("당신이 입력한 코드는 " + code + " 입니다.");
		if(code % 2 == 0) //0일때
			System.out.println("당신은 여자 입니다.");
		else //0이 아닐때
			System.out.println("당신은 남자 입니다.");
		System.out.println("끝");
		sc.close();
		///////////////////////////////////
		
		num01 = 0;
		num02 = 0;
		num03 = 0;
		
		++num01;
		System.out.println(num01); // 1
		
		num02 = ++num01 + 2;
		System.out.println(num01); // 2
		System.out.println(num02); // 4
		
		num03 = num01-- - num02;
		//
		System.out.println(num01); // 1
		System.out.println(num02); // 4
		System.out.println(num03); // -2
		
		// + 연결 연산자
		// 숫자 + 숫자 = 계산 1 + 2 = 3
		// 문자 + 숫자 = 연결 가 + 2 = 가2
		// 숫자 + 문자 = 연결 2 + 가 = 연결
		// 문자 + 문자 = 연결 가 + 나 = 가나
		// 숫자 + 숫자 + 문자 = 앞에는 계산 뒤는 연결
		// 1 + 2 + 가나다 = 3가나다
		// 문자 + 숫자 + 숫자 = 연결 + 연결 + 연결
		// 가나다 + 1 + 2 = 가나다12
		
		// 1 + 2 + 3 + 100 + 문자 = 106문자
		// 가나다 + (1 + 2) = 가나다3
		// (1 + 5) + 가나다 = 6가나다
		
		// 10의 비트를 확인, >>2
		// 10 -> 1010
		System.out.println(10);
		System.out.println(Integer.toBinaryString(10));	// 1010
		System.out.println(Integer.toBinaryString(10 >> 2)); // 10
		System.out.println(Integer.toBinaryString(10 << 3)); // 1010000
		
		System.out.println(-10);
		System.out.println(Integer.toBinaryString(-10));	// 1111 1111 1111 1111 1111 1111 1111 0110
		System.out.println(Integer.toBinaryString(-10 >> 2)); // 1111 1111 1111 1111 1111 1111 1111 1101
		System.out.println(Integer.toBinaryString(-10 << 3)); // 1111 1111 1111 1111 1111 1111 1011 0000
		
		//관계연산자 비교연산자 = 결과 값이 boolean type
		//1과 2는 같다 = 거짓
		
		/*
		if(조건식) {
			조건식이 참일때;
		}else {
			조건식이 거짓일때;
		}
		*/
		check = true;
		boolean check02 = true;
		boolean check03 = !check02;
		
				
		if(check02 == check03) {
			
		}
		
		System.out.println(1 != 2); // true
		System.out.println(1 > 2);  // false
		System.out.println(1 < 2);  // true
		System.out.println( (1 < 2) == false );  // false
		
		int num05 = 5;
		System.out.println( num05 > 1 && num05 < 10 ); // true
		
		// && AND 연산 양쪽 다 참이여야 참
		// || OR 연산 어느 한쪽이 참이면 참
		
		System.out.println( num05 > 1 && num05 > 10 ); // false
		
		System.out.println( num05 > 1 || num05 > 10 ); // true
		
		System.out.println(  (check == true) && (check02 == false)); //false
		
		System.out.println(  ('A' == 65) || (3 == 3.0)); // true || true = true
		
		double temp = 3 + 3.0; // 가장 큰 타입에 맞춰진다.
		
		
		//삼항연산자
		// 조건식 ? 조건식이 참일때 : 조건식이 거짓일때;
		
		temp = 1 > 2 ? 100 : 55;
		System.out.println(temp); // 55.0   - temp double 타입;
		
		if(1 > 2) {
			temp = 100;
		}else {
			temp = 55;
		}		
		System.out.println(temp);
		
		// 배정대입
		// =,
		
		// +=
	
		num01 = 1;
		num01 += num01;
		System.out.println(num01); // 2
		
		num01 = 1;
		num01 -= num01;
		
		System.out.println(num01); // 0
		
		num01 = 2;
		num01 *= 2;
		
		System.out.println(num01); // 4
		
		num01 /= 2;

		System.out.println(num01); // 2
		
		num01 %= 2;
		
		System.out.println(num01); // 0
		
		
		
	}

}

 

 

if

제어문


제어문이란 프로그램이 실행될 때
특정 조건, 반복을 수행 또는 멈추게 하기 위한 문장
   
제어문은 다시 조건에 따라 분리되는 조건문과
특정 조건을 반복적으로 수행하는 반복문으로 구분
   

조건문 if, switch
   
반복문 for, while 

 

if문 사용방법   

    if(조건식){
    조건식이 참일때 실행할 문장;
    }
   
   
    if(조건식){
    조건식이 참일때 실행할 문장;
    }else{
    조건식이 거짓일때 실행할 문장;
    }

else if문
  

    if(조건식1){
    조건식 1이 참일때 실행할 문장;
    } else if(조건식2){
        조건식 1이 거짓이고, 조건식 2가 참일때 실행할 문장;
    } else {
        위 두 조건식 모두 거짓일때 실행할 문장;
    }
   

 

public class If01 {
public static void main(String[] args) {
System.out.println("메인 메소드 시작");

Scanner sc =new Scanner(System.in);
boolean check;
System.out.println("Y/N을 눌러주세요.");
String input = sc.next();

if(input.equals("Y")||input.equals("y")) {
check = true;
}else{
check = false;
}

check = input.equals("Y")||input.equals("y") ? true : false;

if(check) {
//조건식이 참일때 실행할 문장;
System.out.println("조건식이 참일때 실행할 문장");
}

System.out.println("메인 메소드 끝");

int number = 5;

if(number < 10) {
System.out.println(number +"는 10보다 작다.");
}else {
System.out.println(number +"는 10보다 크다.");
}

number = 6;

if(number < 5) {
System.out.println(number +"는 5보다 작다.");
}else if(number > 5 ) {
System.out.println(number +"는 5보다 크다.1");
}else if(number > 5) {
System.out.println(number +"는 5보다 크다.2");
}else {
System.out.println(number +"는 5보다 작지도 않고 크지다 않다.");
}


if - else 문장
주의할 점. 시작은 꼭 if로 시작
조건식이 참이라서 실행하게 되면 나머지는 미실행

 

package may20;
//사용자의 숫자를 받아서
//0~9
//숫자가 5보다 큰지 작은지 표시
//같을때는?
import java.util.Scanner;

public class If02 {
	public static void main(String[] args) {
		/*
		int input;
		Scanner sc = new Scanner(System.in);
		System.out.println("숫자를 입력하세요.(0~9)");
		input = sc.nextInt();
		
		if(input>=5) {
			System.out.println(input+"는 5보다 같거나 크다.");
		}
		else {
			System.out.println(input+"는 5보다 작다.");
		}
		*/
		Scanner sc = new Scanner(System.in);
		System.out.println("숫자를 입력하세요.(0~9)");
		int input = sc.nextInt();
		
		if(input >5) {
			System.out.println("5보다 크다.");
		}else if(input == 5){
			System.out.println("5와 같다.");
		}
		else {
			System.out.println("5보다 작다.");
		}
		
	}
}

 

반응형