JAVA 연산자(산술, 관계, 삼항)

Dec 19, 2023
JAVA 연산자(산술, 관계, 삼항)

System.out.println(); // 내려쓰기해서 출력 System.out.print(); // 출력
 
💡
Scanner 변수명 = new canner(System.in); : 값 입력받기
변수명 = Scanner 변수명.next자료형(); : 입력한 값 변수에 집어넣기
 
package ex02; import java.util.Scanner; //패키지명 + 클래스명 public class Add2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //힙에 띄우기 int x, y, sum; System.out.print("첫 번째 숫자를 입력하시오: "); x = sc.nextInt(); // 키보드에 입력한 값을 x에 받음 } }
notion image
notion image
import java.util.Scanner; //패키지명 + 클래스명
 
package ex02; import java.util.Scanner; //패키지명 + 클래스명 public class Add2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //힙에 띄우기 int x, y, sum; System.out.print("첫 번째 숫자를 입력하시오: "); x = sc.nextInt(); // 키보드에 입력한 값을 x에 받음 System.out.print("두 번째 숫자를 입력하시오: "); y = sc.nextInt(); // 키보드에 입력한 값을 y에 받음 } }
notion image
 
package ex02; import java.util.Scanner; //패키지명 + 클래스명 public class Add2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //힙에 띄우기 int x, y, sum; System.out.print("첫 번째 숫자를 입력하시오: "); x = sc.nextInt(); // 키보드에 입력한 값을 x에 받음 System.out.print("두 번째 숫자를 입력하시오: "); y = sc.nextInt(); // 키보드에 입력한 값을 y에 받음 sum = x + y; System.out.print(sum); } }
notion image
 
💡
코드를 짜는 방법
1. 한 단계 해보고 검증하고 다른 예로 다시 검증하기
2.완료되면 다음 단계로 넘어가기
3.같은 작업 반복해서 오류가 나도 그 이전 완료된 단계들은 문제가 없음
전체가 아니라 부분만 디버깅해서 해결할 수 있음
4.다 분리하여 완성된 코드들을 합칠 때 반복되는 부분 찾기
5.반복되는 부분을 일치화시켜서 하나로 합쳐주기
추가 작업마다 검증해서 오류가 나지 않도록 확인하기

연습문제


1) 사용자로부터 이름과 나이를 받는 프로그램

사용자로부터 이름과 나이를 받아서 화면에 출력하는 프로그램 작성하기
package ex02; import java.util.Scanner; public class InputString { public static void main(String[] args) { String name; int age; Scanner sc = new Scanner(System.in); System.out.println("이름을 입력하시오: "); name = sc.nextLine(); System.out.println("나이를 입력하시오: "); age = sc.nextInt(); System.out.println(name + "님 안녕하세요! " + (age) + "살이시네요."); } }
notion image
 

2) 관계 연산자 실습하기

여러 가지 관계 연산자와 논리 연산자 사용하기
package ex02; public class ComOperator { public static void main(String[] args) { System.out.print((3 == 4) + " "); System.out.print((3 != 4) + " "); System.out.print((3 > 4) + " "); System.out.print((4 > 3) + " "); System.out.print((3 == 3 && 4 == 7) + " "); System.out.print((3 == 3 || 4 == 7) + " "); } }
notion image

3) 조건 연산자 사용하기

반지름이 20cm인 피자 2개와 30cm인 피자 1개의 면적을 비교해서 어떻게 주문하는 것이 유리한가 알아보기
package ex02; public class Pizza { public static void main(String[] args) { double area1 = 2 * 3.141592 * 20 *20; double area2 = 3.11592 * 30 * 30; System.out.println("20cm 피자 면적=" + area1); System.out.println("30cm 피자 면적=" + area2); System.out.println((area1 > area2)? "20cm 두 개": "30cm 한 개"); } }
notion image
 

4) 섭씨-화씨 온도 변환

섭씨의 온도와 화씨의 온도는 다음과 같은 수식을 만족한다.
  1. 사용자로부터 화씨 온도를 받아서 섭씨 온도로 환산하여 출력하는 프로그램 작성하기
  1. 사용자로부터 섭씨 온도를 받아서 화씨 온도로 환산하여 출력하는 프로그램 작성하기
  1. 2가지의 변환 중 하나를 사용자가 선택하게 하기
(if-else문 사용하기)
 
4-1) 화씨 → 섭씨
package ex02; import java.util.Scanner; public class FtoC { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("화씨(미국F)온도를 입력하시오: "); //1. 화씨 온도 받기 double f = sc.nextDouble(); //System.out.println(f); //2. 화씨 -> 섭씨 온도로 변환 double c = 5.0 / 9.0 *(f - 32); System.out.println(c); } }
notion image
4-1) 수식 검증해보기
package ex02.test; public class FtoCTest { public static void main(String[] args) { //5/9 *(100.0 - 32) 검증하기 System.out.println(100.0-32);//결과값 : 68.0 //5/9 * 68.0 System.out.println(5/9);//결과값 : 0 System.out.println(5/9.0);//결과값 : 0.5555555555555556 System.out.println(5.0/9.0);//결과값 : 0.5555555555555556 //0.5 * 68.0 System.out.println(0.5 * 68.0);//결과값 : 34.0 } }
 
4-2) 섭씨 →화씨
package ex02; import java.util.Scanner; public class FtoC3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("섭씨(세계표준C)온도를 입력하시오: "); double c = sc.nextDouble(); //System.out.println(c); double result = 9.0 / 5.0 * c + 32; System.out.println(result); } }
notion image
 
4-3) 화씨 → 섭씨
package ex02; import java.util.Scanner; public class FtoC3 { public static void main(String[] args) { System.out.println("======================"); System.out.println("1. 화씨->섭씨"); System.out.println("2. 섭씨->화씨"); System.out.println("======================"); System.out.println(); System.out.print("번호를 선택하시오: "); //1. 화씨 혹은 섭씨를 선택하는 로직 Scanner sc = new Scanner(System.in); int selectedNum = sc.nextInt(); //2. 화씨 혹은 섭씨 온도 받기 System.out.print("온도를 입력하시오: "); double temp = sc.nextDouble(); //3. 화씨 혹은 섭씨 온도를 받아서 변환하기 double result = selectedNum == 1? (5.0 / 9.0 *(temp - 32)) : (9.0 / 5.0 * temp + 32); System.out.println("온도는 : " + result); } }
4-3) 검증하기
package ex02.test; public class FtoC3Test { public static void main(String[] args) { System.out.println("======================"); System.out.println("1. 화씨->섭씨"); System.out.println("2. 섭씨->화씨"); System.out.println("======================"); System.out.println(); System.out.println("번호를 선택하시오: 1"); System.out.println("화씨온도를 입력하시오: 100.0"); System.out.println("섭씨온도는 37.77"); } }
notion image
notion image

연습문제


1) 나머지 연산자
하나의 상자에 오렌지를 10개씩 담을 수 잇다고 하자.
오렌지가 127개 있다면 상자 몇 개가 필요한가?
또 몇 개의 오렌지가 남을까?
/ 와 % 연산자를 사용하기
package ex02.example; import java.util.Scanner; public class Example01 { public static void main(String[] args) { //1. 오렌지의 개수 입력 안내하기 Scanner sc = new Scanner(System.in); System.out.print("오렌지의 개수를 입력하시오.: "); //2. 오렌지의 개수 입력받기 int orange = sc.nextInt(); //System.out.print(orange); //3. 10개씩 담을 수 있는 박스 만들기 int box = orange / 10; System.out.print(box + "박스가 필요하고 "); //4. 박스에 담고 남는 오렌지 개수 확인하기 int result = orange % 10; System.out.print(result + "개가 남습니다."); } }
notion image
 
2) 산술 연산자
마일을 킬로미터로 변환하는 프로그램을 작성하라.
1마일은 1.609킬로미터와 같다.
사용자로터 마일의 값을 읽어 들인다.
Scanner의 nextDouble()을 이용하여서 마일값을 읽는다.
System.out.print()를 사용하면 출혁한 후에 줄을 바꾸지 않는다.
package ex02.example; import java.util.Scanner; public class Example02 { public static void main(String[] args) { //1. 사용자로부터 마일값 읽어오기 Scanner sc = new Scanner(System.in); System.out.print("마일을 입력하시오: "); double mile = sc.nextDouble(); //2. 마일을 킬로미터로 변환하기 double kilometer = mile * 1.609; System.out.println(mile + "마일은 " + kilometer + "킬로미터 입니다."); } }
notion image
 
3) 산술 연산자
사용자로부터 두 개의 정수를 받아서 정수의 합, 정수의 차,
정수의 곱, 정수의 평균, 정수의 큰 수, 작은 수를 계산하여
화면에 출력하는 프로그램을 작성하라.
큰 수와 작은 수를 구할 때는 조건 연산자를 사용하기
max = (x>y)x:y;와 같이 조건 연산자를 사용할 수 있다.
package ex02.example; import java.util.Scanner; public class Example03 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //1. x값 입력받기 System.out.print("x: "); int x = sc.nextInt(); //2. y값 입력받기 System.out.print("y: "); int y = sc.nextInt(); //3. 두 수의 합 구하기 System.out.println("두 수의 합: " + (x + y)); //4. 두 수의 차 구하기 System.out.println("두 수의 차: " + (x - y)); //5. 두 수의 곱 구하기 System.out.println("두 수의 곱: " + (x * y)); //6. 두 수의 평균 구하기 System.out.println("두 수의 평균: " + (double)(x + y) / 2); //7. 큰 수 구하기 int max = (x>y)? x:y; System.out.println("큰 수: " + max); //8. 작은 수 구하기 int min = (x<y)? x:y; System.out.println("작은 수: " + min); } }
notion image
 
4) 논리 연산자
자바의 기본 논리 연산에 대한 진리표를
다음과 같이 표시하는 프로그램을 작성해보자.
열을 정렬할 때는 탭을 나타내는 문자인 ‘\t’을 사용하기
package ex02.example; public class Example04 { public static void main(String[] args) { int P, Q; boolean p, q; // 헤더 출력 System.out.println("P Q AND OR XOR"); // Case 1 boolean p1 = true; boolean q1 = true; System.out.println(p1 + "\t" + q1 + "\t" + (p1 && q1) + "\t" + (p1 || q1) + "\t" + (p1 ^ q1)); // Case 2 boolean p2 = true; boolean q2 = false; System.out.println(p2 + "\t" + q2 + "\t" + (p2 && q2) + "\t" + (p2 || q2) + "\t" + (p2 ^ q2)); // Case 3 boolean p3 = false; boolean q3 = true; System.out.println(p3 + "\t" + q3 + "\t" + (p3 && q3) + "\t" + (p3 || q3) + "\t" + (p3 ^ q3)); // Case 4 boolean p4 = false; boolean q4 = false; System.out.println(p4 + "\t" + q4 + "\t" + (p4 && q4) + "\t" + (p4 || q4) + "\t" + (p4 ^ q4)); } }
notion image
💡
‘^’ : 비트 XOR 연산자로 사용
두 비트가 서로 다를 때 1을 반환하고, 같을 때 0을 반환
 
 
5) 산술 연산자
사용자가 번개로부터 얼마나 멀리 떨어져 있는지를
계산하는 프로그램을 만들어 보자. 소리는 공기를 통해
초당 약 340km를 이동한다. 빛은 초당 300,000km를 이동한다.
번개를 본 시간과 소리가 도달하는 시간 사이의 간격을 알면
번개까지의 거리를 계산할 수 있다.
시간 간격은 사용자로부터 입력받는다.
빛의 속도가 소리보다 훨씬 빠르므로
빛은 순간적으로 도착한다고 가정하기
package ex02.example; import java.util.Scanner; public class Example05 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //1. 시간 간격 입력받기 System.out.print("시간간격을 입력하시오(단위: 초): "); int time = sc.nextInt(); //2. 번개까지의 도달 거리 구하기 (소리는 초당 340m, 빛은 초당 300,000km) double distance = 340.0 * time; // 단위: m //3. 결과 출력 System.out.println("번개가 발생한 곳까지의 거리: " + (int)distance + " m"); } }
notion image
 
6) 문자열 조작
사용자로부터 파일이 위치한 드라이브 이름(c),
디렉터리 이름(\test\), 파일이름(sample),확장자(py)를 받아서
완전한 파일 이름(c:\test\samp.py)으로 만드는 프로그램을
작성해보자.
package ex02.example; import java.util.Scanner; public class Example06 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //1. 드라이브 이름 입력받기 System.out.print("드라이브 이름: "); String driveName = sc.nextLine(); //2. 디렉터리 이름 입력받기 System.out.print("디렉터리 이름: "); String directoryName = sc.nextLine(); //3. 파일 이름 입력받기 System.out.print("파일 이름: "); String fileName = sc.nextLine(); //4. 확장자 이름 입력받기 System.out.print("확장자 이름: "); String fileExtensioName = sc.nextLine(); //합치기 System.out.println("완전한 이름은 " + driveName + ":" + directoryName + fileName + "." + fileExtensioName); } }
notion image
💡
nextInt() : 정수 입력시
nextLine() : 문자열로 입력시
nextDouble() : 소수를 입력시
 
7) 산술 연산자 응용
상점에 가면 우리는 상품에 대한 돈을 내고 영수증을 받는다.
영수증에는 10% 부가세와 잔돈 등이 인쇄되어 있다.
구입한 상품의 가격과 손님한테 받은 금액을 입력하면
부가세와 잔돈을 출력하는 프로그램을 작성하여 보자.
package ex02.example; import java.util.Scanner; public class Example07 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //1. 구입한 상품의 가격과 손님한테 받은 금액 입력하기 System.out.print("받은 돈: "); int money = sc.nextInt(); System.out.print("상품 가격: "); int price = sc.nextInt(); //2. 부가세와 잔돈 출력하기 int tax = price / 10; System.out.println("부가세: " + tax); int change = money - price; System.out.println("잔돈: " + change); } }
notion image
 
8) 산술 연산자 응용
사용자로부터 구의 반지름을 입력받아서 부피를 계산하여
출력하는 프로그램을 작성하라.
단 구의 반지름은 실수로 입력되며 출력도
모두 실수형으로 하여야 한다. 부피를 계산하는 수식은
notion image
package ex02.example; import java.util.Scanner; public class Example08 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //1. 구의 반지름 입력받기 System.out.print("구의 반지름: "); double radius = sc.nextDouble(); //2. 구의 부피 구하기 double volume = (4.0 / 3.0) * Math.PI * Math.pow(radius, 3); System.out.println("구의 부피: " + volume); } }
notion image
💡
Math.pow(기준이 되는 숫자, 거즙제곱의 지수)
 
9) 나머지 연산자 응용
정수(최대 2자리)를 2진수로 변환하여 출력하는 프로그램을
작성해보자.
/ 연산자와 % 연산자를 사용하기
Integer.toBinaryString(value)을 사용하지 않고 직접 변환해보기
음수는 제외, 반복 루프를 사용하지 않고 해결하기
 
막노동 버전….
package ex02.example; import java.util.Scanner; public class Example09 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 사용자로부터 정수 입력 받기 System.out.print("정수: "); int num = sc.nextInt(); // 음수일 경우 처리 if (num < 0) { System.out.println("음수는 처리할 수 없습니다."); return; } // 2진수로 변환하여 출력 String binaryRepresentation = convertToBinary(num); System.out.println(num + ": " + binaryRepresentation); } // 정수를 2진수로 변환하는 메서드 private static String convertToBinary(int number) { // 높은 자리부터 낮은 자리까지 2진수로 변환하여 저장 String binary = ""; while (number > 0) { int remainder = number % 2; // 나머지 연산으로 현재 자리의 비트 구하기 binary = remainder + binary; // 현재 자리의 비트를 결과에 추가 number /= 2; // 다음 자리로 이동 } // 만약 입력이 0인 경우에 대한 처리 if (binary.isEmpty()) { binary = "0"; } return binary; } }
notion image
 
10) 산술 연산자 응용
움직이는 물체의 운동에너지를 계산해보자.
물체의 에너지를 계산하는 식은 0.5 * 무게 * 속도의 제곱이다.
적절한 자료형을 사용하기
제곱하는 것은 그냥 x*x와 같이 단순히 두번 곱하기
package ex02.example; import java.util.Scanner; public class Example10 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //1. 물체의 무게 입력받기 System.out.print("물체의 무게를 입력하시오(킬로그램): "); int weight = sc.nextInt(); //2. 물체의 속도 입력받기 System.out.print("물체의 속도를 입력하시오(미터/초): "); int speed = sc.nextInt(); //3. 에너지 계산하기(0.5 * 무게 * 속도의 제곱) double energy = 0.5 * weight * speed * speed; System.out.println("물체는 " + energy + "(줄)의 에너지를 가지고 있다."); } }
notion image

 
 
Share article

Coding_study