Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

Chapter03 : Operator 본문

JAVA

Chapter03 : Operator

GAWON 2023. 5. 12. 18:19
1.1 연산자와 연산식
 - 프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산(operations)이라고 한다.
 - 연산에 사용되는 표시나 기호를 연산자(operator)라고 하고, 연산되는 데이터는
      피연산자(operand)라고 한다.
 - 연산자는 필요로 하는 피연산자의 수에 따라 단항, 이항, 삼항 연산자로 구분된다.

1.2 단항, 이항, 삼항 연산자
 - 단항 연산자(피연산자 한 개 - 증가/감소 연산자, 논리 부정 연산자)
  ex) x++, --y, !x
 - 이항 연산자(피연산자 두 개 - 산술, 비교, 논리)
  ex) x+y, x==y, x&&y
 - 삼항 연산자(피연산자 세 개 - 조건 연산자)
  ex) (sum>90) ? x : y

1.3 연산의 방향과 우선순위
 - 산술 연산식에서 곱셈(*), 나눗셈(/)이 덧셈(+), 뺄셈(-)보다 먼저 처리 된다.
 - 대부분의 연산자(단항, 대입 연산자 제외)는 왼쪽에서 오른쪽으로 > 연산을 시작한다.
  ex) 50 * 2 / 4 % 5
 - 대입 연산자의 경우 오른쪽에서 왼쪽으로 < 연산을 시작한다.
  ex) a = b = c = 5
 - 괄호 부분의 연산은 최우선순위를 갖기 떄문에 다른 연산자보다 우선 연산된다.
  ex) (a + b) * c
Test01.java
Q. 두 정수를 입력받아 a, b에 저장한 뒤 두 변수의 값을 교환하는 프로그램 구현
	* 임시 변수 필요
package org.joonzis.test;

import java.util.Scanner;

public class Test01 {
	public static void main(String[] args) {
//		Test01.java
//		Q. 두 정수를 입력받아 a, b에 저장한 뒤 두 변수의 값을 교환하는 프로그램 구현
//			* 임시 변수 필요
		Scanner sc = new Scanner(System.in);
		
		System.out.println("첫 번째 숫자 입력 >> ");
		int a = sc.nextInt();
				
		System.out.println("두 번째 숫자 입력 >> ");
		int b = sc.nextInt();
		
		int tmp = a;
		a = b;
		b = tmp;
		
		System.out.println("a : " + a + ", b : " + b);
		
		sc.close();
	}
}
Test02.java
Q. 나이를 입력받아 "성인" 또는 "미성년자" 출력
package org.joonzis.test;

import java.util.Scanner;

public class Test02 {
	
	public static void main(String[] args) {
//		Test02.java
//		Q. 나이를 입력받아 
		// "성인" 또는 "미성년자" 출력
		
		Scanner sc = new Scanner(System.in);	// 스캐너 객체 생성

		System.out.println("나이 입력 >> ");
		int age = sc.nextInt();
		String adult = (age >= 20) ? "성인" : "미성년자";
		System.out.println(adult);
		//System.out.println((age >= 20) ? "성인" : "미성년자");
		
		
		sc.close(); // 스캐너 객체 소멸
	}
}
Test03.java
Q. 매출액과 등급("VIP", "일반")을 입력받아 등급이 "VIP"이면 매출액에서 20%를 할인하고
   "일반"이면 매출액에서 5%를 할인하는 프로그램 구현
package org.joonzis.test;

import java.util.Scanner;
public class Test03 {
	public static void main(String[] args) {
//		Test03.java
//		Q. 매출액과 등급("VIP", "일반")을 입력받아 
//		등급이 "VIP"이면 매출액에서 20%를 할인하고
//		   "일반"이면 매출액에서 5%를 할인하는 프로그램 구현 
		
		
		Scanner sc = new Scanner(System.in);

		System.out.println("매출액 입력 >> ");
		int money = sc.nextInt();
		sc.nextLine();	// nextInt()의 개행 삭제 용도
		System.out.println("등급 입력 >> ");
		String grade = sc.nextLine();
		
		int totalMoney = grade.equalsIgnoreCase("VIP") ? 
							(int)(money * 0.8) :
								(int)(money * 0.95);
							
							
		System.out.println("할인 받은 매출액은 : " + totalMoney);
		
		sc.close();
	}
}
Test04.java
Q. 성별을 의미하는 정수 값(1,3:남자, 2,4:여자)을 입력받아 "남자", "여자"출력하기
	* 1~4 사이의 값으로 입력 받기
	* 홀수-남자 짝수-여자
package org.joonzis.test;

import java.util.Scanner;


public class Test04 {
	public static void main(String[] args) {
//		Test04.java 
//		Q. 성별을 의미하는 정수 값(1,3:남자, 2,4:여자)을 입력받아
//		"남자", "여자"출력하기
//			* 홀수-남자 짝수-여자
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("성별 입력(1~4) >> ");
		int num = sc.nextInt();
		
		
		// 1. 숫자 직접 검증
//		String gender = (num==1 || num==3) ? "남자" : "여자";
//		System.out.println("성별 : " + gender);
		
		// 2. 홀수 / 짝수
		String gender = (num % 2 == 1) ? "남자" : "여자";
		System.out.println("성별 : " + gender);
		
		sc.close();
	}
}
Test05.java
Q. 하이픈 없이 주민등록번호를 입력받아 (정수, 문자열) "남자","여자" 출력하기
	* String의 메소드 이용하기
	* ex) charAt(), substring() 등
package org.joonzis.test;

import java.util.Scanner;

public class Test05 {
	public static void main(String[] args) {
//		Test05.java
//		Q. 하이픈 없이 주민등록번호를 입력받아 (정수, 문자열) "남자","여자" 출력하기
		
		Scanner sc = new Scanner(System.in);
		System.out.println("주민등록번호 입력 >> ");
		String num = sc.next();
		
		// 1. 문자열 자르기 - substring()
		String gender = num.substring(6, 7).equals("1") ? "남자" : "여자" ;
//		String gender1 = num.substring(6, 7);
//		String gender2 = gender1.equals("1") ? "남자" : "여자" ;
		
		// 2. 문자 꺼내기 - charAt()
		String gender_ = (num.charAt(6)=='1') ? "남자" : "여자";
		
		System.out.println("성별 : " + gender);
		System.out.println("성별 : " + gender_);
		
	}
}
Test06.java
Q. 섭씨 화씨 변환기
      섭씨를 입력하면 변환된 화씨, 화씨를 입력하면 변환된 섭씨 출력하기
★화씨 = 섭씨 * 1.8 +32
  섭씨 = (화씨 -32) / 1.8
package org.joonzis.test;

import java.util.Scanner;


public class Test06 {
	public static void main(String[] args) {
//		Test06.java
//		Q. 섭씨 화씨 변환기
//		      섭씨를 입력하면 변환된 화씨, 화씨를 입력하면 변환된 섭씨 출력하기
//		★화씨 = 섭씨 * 1.8 +32
//		  섭씨 = (화씨 -32) / 1.8
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("섭씨 입력 >> ");
		double inputData = sc.nextDouble();
		double outputData = inputData * 1.8 + 32;
		System.out.println("변환된 화씨 : " + outputData);
		
		
		System.out.println("화씨 입력 >> ");
		inputData = sc.nextDouble();
		outputData = (inputData-32) / 1.8;
		System.out.println("변환된 섭씨 : " + outputData);
		
		
		sc.close();
	}
}
Test07.java
Q. 체질량 지수(BMI) = 몸무게(kg) / 키 (m) 제곱
   BMI 25 이상이면 "과체중", 20 이상이면 "정상", 20 미만이면 "저체중"
package org.joonzis.test;

import java.util.Scanner;


public class Test07 {
	public static void main(String[] args) {
//		Test07.java
//		Q. 체질량 지수(BMI) = 몸무게(kg) / 키 (m) 제곱 
//		   BMI 25 이상이면 "과체중", 20 이상이면 "정상", 20 미만이면 "저체중"
		
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("키 입력(cm) >>");
		double height = sc.nextDouble() / 100.0;	// 키 (cm -> m)
		
		System.out.print("몸무게 입력(kg) >> ");
		double weight = sc.nextDouble();
		
		System.out.println(height);	// 키(m)  확인
		System.out.println(weight); // 몸무게(kg) 확인
		
		double bmi = weight / (height * height);
		
		String overWeight = (bmi >= 25) ? "과체중" : 
								(bmi >= 20) ? "정상" : "저체중";
		
		System.out.println("체질량 지수 : " + bmi + ", 체중 범위 : " + overWeight);
		
	}
}

'JAVA' 카테고리의 다른 글

chapter05 : array  (1) 2023.05.16
chapter04 : control_statement  (0) 2023.05.16
Chapter02 : Casting  (0) 2023.05.12
Chapter02 : Primitive Type  (0) 2023.05.12
Chapter02 : Variable  (0) 2023.05.12