Notice
Recent Posts
Recent Comments
Link
Everything has an expiration date
036 - Java 사용자에게 정수 3개를 입력 받고, if문을 통해 크기 순으로 정렬하여 출력하기 (선생님 풀이) 『 비트 연산자 XOR 이용 』 본문
[Java]/Program source (java)
036 - Java 사용자에게 정수 3개를 입력 받고, if문을 통해 크기 순으로 정렬하여 출력하기 (선생님 풀이) 『 비트 연산자 XOR 이용 』
Jelly-fish 2023. 8. 30. 09:53/*=========================================
■■■ 실행 흐름의 컨트롤(제어문) ■■■
- if 문
- if ~ else 문 실습
===========================================*/
// 1. 프로그램을 작성할 때 주어진 조건에 따라
// 분기 방향을 정하기 위해 사용하는 제어문에는
// if문, if~else문, 조건연산자, 복합 if문(if문 중첩), switch문이 있다.
// 2. if문은 if 다음의 조건이 참(true)일 경우
// 특정 문장을 수행하고자 할 때 사용되는 구문이다.
// 사용자로부터 임의의 정수 세 개를 입력받아
// 작은 수에서 큰 수 순으로 출력하는 프로그램을 구현한다.
// 실행 예)
// 첫 번째 정수 입력 : 753
// 두 번째 정수 입력 : 22
// 세 번째 정수 입력 : 124
//
// >> 정렬 결과 : 22 124 753
// 계속하려면 아무 키나 누르세요...
/*
8 21 74
------
-- --
------
7 25 99
------
-- --
------
13 25 87
------
-- --
------
① 첫 번째 정수 vs 두 번째 정수 크기 비교
→ 첫 번째 정수가 두 번째 정수보다 클 경우... 자리 바꿈
② 첫 번째 정수 vs 세 번째 정수 크기 비교
→ 첫 번째 정수가 세 번째 정수보다 클 경우... 자리 바꿈 (클 경우 => 작을 경우와 같을 경우를 포함하여 처리한다.)
③ 두 번째 정수 vs 세 번째 정수 크기 비교
→ 두 번째 정수가 세 번째 정수보다 클 경우... 자리 바꿈
첫 번째, 두 번째 정수 크기를 비교하고 나서, 첫 번째 세 번째 정수 크기 비교가 필요가 없다? -> (Ⅹ)
→ ∴ 첫 번째 세 번째 정수 크기 비교는 서로 다른 개념이고, 반드시 거쳐져야 하는 과정이므로
모든 제어문 if, else if, else 중, if만을 사용하여 Logic을 구성한다.
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test036
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a, b, c; //-- 사용자가 입력하는 임의의 정수를 담아둘 변수
System.out.print("첫 번째 정수 입력 : ");
a = Integer.parseInt(br.readLine());
System.out.print("두 번째 정수 입력 : ");
b = Integer.parseInt(br.readLine());
System.out.print("세 번째 정수 입력 : ");
c = Integer.parseInt(br.readLine());
// ◎ XOR을 이용하여, 자리 바꿈을 이용. ◎
if (a > b) //-- 첫 번째 정수가 두 번째 정수보다 클 경우
{
// 자리 바꿈
a=a^b;
b=b^a;
a=a^b;
}
if (a > c) //-- 첫 번째 정수가 세 번째 정수보다 클 경우
{
// 자리 바꿈
a=a^c;
c=c^a;
a=a^c;
}
if (b > c) //-- 두 번째 정수가 세 번째 정수보다 클 경우
{
// 자리 바꿈
b=b^c;
c=c^b;
b=b^c;
}
// 최종 결과 출력
System.out.printf("\n>> 정렬 결과 : %d %d %d\n", a, b, c); // 안에 있는 내용물이 이미 서로 자리를 바꿨으므로...
}
}
// 실행 결과
/*
첫 번째 정수 입력 : 300
두 번째 정수 입력 : 200
세 번째 정수 입력 : 100
>> 정렬 결과 : 100 200 300
계속하려면 아무 키나 누르십시오 . . .
*/
/*
첫 번째 정수 입력 : 200
두 번째 정수 입력 : 100
세 번째 정수 입력 : 300
>> 정렬 결과 : 100 200 300
계속하려면 아무 키나 누르십시오 . . .
*/
/*
첫 번째 정수 입력 : 200
두 번째 정수 입력 : 100
세 번째 정수 입력 : 100
>> 정렬 결과 : 100 100 200
계속하려면 아무 키나 누르십시오 . . .
*/
'[Java] > Program source (java)' 카테고리의 다른 글
040 - Java switch문을 사용하여 국어, 영어, 수학 점수의 총점과 등급을 출력하는 프로그램 (0) | 2023.08.30 |
---|---|
037 - Java 입력 받은 5개 정수의 짝수의 합, 홀수의 합을 구하는 프로그램 (0) | 2023.08.30 |
035 - Java if문을 통해 정수와 연산자 문자열(+, -, *, /)을 입력 받고 사칙 연산 처리하여 출력하기 (0) | 2023.08.29 |
033 - Java if 조건문을 통해 입력 받은 수가 2, 3의 배수인지 판별하는 프로그램 (0) | 2023.08.29 |
032 - Java 제어문 if를 통해 입력 받은 정수가 홀수인지 짝수인지 0인지 판별하는 프로그램 (0) | 2023.08.29 |