JAVA

※ 사용자로부터 임의의 정수 세 개를 입력받아 작은 수에서 큰 수 순으로 출력하는 프로그램을 구현한다.

 실행 예)
 첫 번째 정수 입력 : 112
 두 번째 정수 입력 : 8
 세 번째 정수 입력 : 21

 >> 정렬 결과 : 8 21 112
 계속하려면 아무 키나 누르세요

 첫 번째 정수 입력 : 15
 두 번째 정수 입력 : 121
 세 번째 정수 입력 : 12

 >> 정렬 결과 : 15 15 121
 계속하려면 아무 키나 누르세요...



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());

		if (a>b)	// 첫 번쨰 정수 (a)가 두 번째 정수(b)보다 크다면...
		{
			// a와 b의 자리를 바꾼다.
			a = a^b;
			b = b^a;
			a = a^b;
		}

		if(a>c)		// 첫 번째 정수 (a)가 세 번째 정수(c)보다 크다면...
		{
			// a와 c의 자리를 바꾼다.
			a = a^c;
			c = c^a;
			a = a^c;

		}

		if(b>c)		//두 번째 정수 (b)가 세 번째 정수(c)보다 크다면...
		{
			// b와 c의 자리를 바꾼다.
			b = b^c;
			c = c^b;
			b = b^c;
		}

		// 최종 결과 출력 → a,b,c 순서대로 출력
		System.out.printf("%d %d %d",a,b,c);
	}

}

// 실행 결과
/*
첫 번째 정수 입력 : 13
두 번째 정수 입력 : 7
세 번째 정수 입력 : 10
7 10 13계속하려면 아무 키나 누르십시오 . . .

첫 번째 정수 입력 : 5
두 번째 정수 입력 : 20
세 번째 정수 입력 : 5
5 5 20계속하려면 아무 키나 누르십시오 . . .
*/

※ 사용자로부터 임의의 정수를 두 개 입력받아 큰 수를 출력하는 프로그램을 구현한다. 단, 입력받은 두 수가 같은 경우
 아무것도 출력하지 않도록 구성한다.

 실행 예)
 첫 번째 정수 입력 : 11
 두 번째 정수 입력 : 22
 >> 큰 수 → 22
 계속하려면 아무 키나 누르세요...

 첫 번째 정수 입력 : 55
 두 번째 정수 입력 : 4
 >> 큰 수 → 55
 계속하려면 아무 키나 누르세요...

 첫 번째 정수 입력 : 31
 두 번째 정수 입력 : 31
 계속하려면 아무 키나 누르세요...



import java.io.*;

public class Test035
{
	public static void main(String[] args) throws IOException
	{
		// BufferedReader 인스턴스 생성
		BufferedReader br = new BufferedReader(InputStreamReader(System.in));
		
		// 주요 변수 선언
		int a, b;		//-- 첫 번째, 두 번째 입력받을 변수

		// 사용자에게 안내 메세지 출력
		System.out.print("첫 번째 정수 입력 : ");
		a = Integer.parseInt(br.readLine());

		System.out.print("두 번째 정수 입력 : ");
		b = Integer.parseInt(br.readLine());
		
		// 연산 및 처리(조건에 따른 처리 및 결과 출력)
		if(a>b)		//-- 첫 번째 입력받은 정수가 크다면...
		{
			System.out.println(">> 큰 수 →" + a);			
		}
		else if(a<b)
		{
			System.out.println(">> 큰 수 →" + b);						
		}
	}
}
// 실행 결과
/*
첫 번째 정수 입력 : 2
두 번째 정수 입력 : 5
>> 큰 수 → 5
계속하려면 아무 키나 누르십시오 . . .

첫 번째 정수 입력 : 8
두 번째 정수 입력 : 2
>> 큰 수 → 8
계속하려면 아무 키나 누르십시오 . . .
*/

※ 사용자로부터 임의의 두 정수와 연산자를 입력받아 해당 연산자의 연산 처리 결과를 출력하는 프로그램을 구현한다.
 단, if 조건문을 활용하여 처리할 수 있도록 하며, 연산 결과는 편의상 정수형으로 처리될 수 있도록 한다.

 실행 예)
 첫 번째 정수 입력    : 10
 두 번째 정수 입력    : 14
 연산자 입력[+ - * /] : +

 >> 10 + 14 = 24
 계속하려면 아무 키나 누르세요...

 


 

방법 ①

 

char형 변수에 입력을 받아 문자를 비교하여 연산을 수행

 

                                                                                                                                                                                                                                                                                
		int a,b;		// 첫 번째 변수, 두 번째 변수                                            
		char op;                                                                                 
                                                                                                 
		System.out.print("첫 번째 정수 입력    : ");                                             
		a = Integer.parseInt(br.readLine());                                                     
                                                                                                 
		System.out.print("두 번째 정수 입력    : ");                                             
		b = Integer.parseInt(br.readLine());                                                     
	                                                                                             
		// Integer.parseInt()                                                                    
		// "1234"	→ Integer.parseInt("1234");	→ 1234                                           
		// "abcd"	→ Integer.parseInt("abcd");	→ (X)                                            
                                                                                                 
		System.out.print("연산자 입력[+ - * /] : ");                                             
		//op = Integer.parseInt(br.readLine());                                                  
		//op = br.readLine();                                                                    
		op = (char)System.in.read();                                                             
	                                                                                             
		// 확인(테스트)                                                                          
		System.out.println("op : " + op);                                                        
                                                                                                 
                                                                                                 
		if (op == '+')                                                                           
		{                                                                                        
			System.out.printf("\n>> %d + %d = %d\n",a,b,(a+b));                                  
		}                                                                                        
		else if(op == '-')                                                                       
		{                                                                                        
			System.out.printf("\n>> %d - %d = %d\n",a,b,(a-b));			                         
		}                                                                                        
		else if(op == '*')                                                                       
		{                                                                                        
			System.out.printf("\n>> %d * %d = %d\n",a,b,(a*b));			                         
		}                                                                                        
		else if(op == '/')                                                                       
		{                                                                                        
			System.out.printf("\n>> %d / %d = %d\n",a,b,(a/b));			                         
		}                                                                                        
		else                                                                                     
			System.out.printf("\n>> 입력 과정에 오류가 존재합니다.\n");                          
                                                                                                 
*/                                                                                               

 

방법 ②

 

System.in.read()로 각 연산자 문자에 대한 아스키코드 값을 정수형으로 입력받아 비교하여 연산을 수행

 		 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int a,b,op;		// 첫 번째 변수, 두 번째 변수, 그리고 연산자

		System.out.print("첫 번째 정수 입력 :");
		a = Integer.parseInt(br.readLine()); 

		System.out.print("두 번째 정수 입력 :");
		b = Integer.parseInt(br.readLine());

		System.out.print("첫 번째 정수 입력 :");
		op = System.in.read();
		
		if(op == 43)
			System.out.printf("\n>> %d + %d = %d\n",a,b,(a+b));			
		else if(op == 45)
			System.out.printf("\n>> %d - %d = %d\n",a,b,(a-b));			
		else if(op == 42)
			System.out.printf("\n>> %d * %d = %d\n",a,b,(a*b));			
		else if(op == 47)
			System.out.printf("\n>> %d / %d = %d\n",a,b,(a/b));			
		else
			System.out.printf("\n>> 입력 과정에 오류가 존재합니다.\n");

 

방법 ③

 

		int a, b, result = 0;
		char op;

		System.out.print("첫 번째 정수 입력      : ");
		a = Integer.parseInt(br.readLine());
		
		System.out.print("두 번째 정수 입력      : ");
		b = Integer.parseInt(br.readLine());

		System.out.print("연산자 입력[+ - / * /] : ");
		op = (char)System.in.read();

		if(op == '+')
			result = a + b;
		else if(op == '-')
			result = a - b;
		else if(op == '*')
			result = a * b;
		else if (op == '/')
			result = a/b;

		System.out.printf("\n>> %d %c %d = %d \n",a,op,b,result);

 

실행 결과

// 실행 결과

/*
첫 번째 정수 입력      : 5
두 번째 정수 입력      : 6
연산자 입력[+ - / * /] : +

>> 5 + 6 = 11
계속하려면 아무 키나 누르십시오 . . .

첫 번째 정수 입력      : 4
두 번째 정수 입력      : 12
연산자 입력[+ - / * /] : -

>> 4 - 12 = -8
계속하려면 아무 키나 누르십시오 . . .

첫 번째 정수 입력      : 45
두 번째 정수 입력      : 25
연산자 입력[+ - / * /] : *

>> 45 * 25 = 1125
계속하려면 아무 키나 누르십시오 . . .

첫 번째 정수 입력      : 12
두 번째 정수 입력      : 3
연산자 입력[+ - / * /] : /

>> 12 / 3 = 4
계속하려면 아무 키나 누르십시오 . . .
*/

※ 사용자로부터 임의의 연도를 입력받아 입력받은 연도가... 윤년인지 평년인지 판별하여 그 결과를 출력하는 프로그램을 구현한다. 단, 입력은 BufferedReader 를 활용하고, if 조건문을 활용하여 처리할 수 있도록 한다.

 실행 예)

 

 임의의 연도 입력 : 2020 
 2020 → 윤년 
 계속하려면 아무 키나 누르세요... 

 임의의 연도 입력 : 2021 
 2021 → 평년 
 계속하려면 아무 키나 누르세요... 

 ※ 윤년 → 2월의 마지막 날이 29일 
   평년 → 2월의 마지막 날이 28일 

 ※ 윤년을 판별하기 위한 조건 
   연도가 4의 배수이면서, 100의 배수가 아니거나. 
   또는 400의 배수이면 윤년~!!! 
   그렇지 않으면 평년~!!! 


mport java.io.*;

public class Test033
{
	public static void main(String[] args) throws IOException
	{
		// BufferedReader 인스턴스 생성
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		// 주요 변수 선언
		int year;		// 입력받을 년도

		// 연산 및 처리

		System.out.print(" 임의의 연도 입력 : "); 
		year = Integer.parseInt(br.readLine());

		if(year % 4 == 0)
		{
			if(year % 400 == 0 || year % 100 != 0)
			{
				System.out.println(year +  " → 윤년" );
			}
			else
			{
				System.out.println(year +  " → 평년" );
			}
		}
		else 
			System.out.println(year +  " → 평년" );



	}
}
// 실행 결과
/*
 임의의 연도 입력 : 2020
2020 → 윤년
계속하려면 아무 키나 누르십시오 . . .

 임의의 연도 입력 : 2012
2012 → 윤년
계속하려면 아무 키나 누르십시오 . . .

 임의의 연도 입력 : 2003
2003 → 평년
계속하려면 아무 키나 누르십시오 . . .
*/

 

※ 사용자로부터 임의의 정수를 입력받아 입력받은 정수가... 짝수인지, 홀수인지, 영인지 결과를 판별하여 출력하는 프로그램을 구현한다.


 실행 예)
 임의의 정수 입력 : 4
 4 → 짝수
 계속하려면 아무 키나 누르세요...

 임의의 정수 입력 : 13
 13 → 홀수
 계속하려면 아무 키나 누르세요...

 임의의 정수 입력 : 0
 0 → 영
 계속하려면 아무 키나 누르세요...



import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;

public class Test032
{
	public static void main(String[] args) throws IOException
	{

		// BufferedReader 인스턴스 생성
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		// 주요 변수 선언
		int num;

		// 연산 및 처리

		// ① 입력 안내 메세지 출력
		System.out.print("임의의 정수 입력 : ");

		// ② 임의의 정수를 문자열 형태로 입력 받아 정수형태로 파싱하여 저장 
		num = Integer.parseInt(br.readLine());

		// ③ 저장된 정수가 홀수인지 짝수인지 0인지 구별
		// 조건문의 구성 순서 check~!!!

		/*
		if(num % 2 == 0 && num != 0)
		{
			System.out.printf("%d → 짝수\n",num);
		}
		else if(num % 2 == 1 || num % 2 == -1)
		{
			System.out.printf("%d → 홀수\n",num);
		}
		else
			System.out.printf("%d → 영\n",num);
		*/

		String result = "판별 불가";
		
		if(num == 0)
		{
			result = "영";
		}
		else if (num % 2 ==0)
		{
			result = "짝수";
		}
		else if (num % 2 !=0)
		{
			result = "홀수";
		}

		System.out.println(num + " → " + result);


	}
}
// 실행 결과
/*
임의의 정수 입력 : 7
7 → 홀수
계속하려면 아무 키나 누르십시오 . . .

임의의 정수 입력 : 14
14 → 짝수
계속하려면 아무 키나 누르십시오 . . .

임의의 정수 입력 : 0
0 → 영
계속하려면 아무 키나 누르십시오 . . .
*/


 ※ 조건문을 구성할 때에는 항상 조건의 구성 순서에 유의해야 한다.

 ※ 조건문의 구성 과정에서 이외의 영역(else)을 업무에 포함된 내용으로 처리하는 것은 바람직하지 않을 경우가 있다.
   불가능한 경우는 어쩔 수 없더라도 가급적이면 업무에 포함되지 않은 내용을 이외의 영역(else)에서 처리할 수 있도록     하자.

※ 사용자로부터 이름, 국어점수, 영어점수, 수학점수를 입력받아 다음과 같은 형태로 출력하는 프로그램을 작성한다.

이 때, 등급은 평균 점수를 기준으로 처리한다.

 90점 ~ 100점 : A 80점 ~ 89점 : B
 70점 ~ 79점  : C 60점 ~ 69점 : D
 60점 미만    : F

 입력받는 과정은 BufferedReader 를 활용할 수 있도록 하며, printf() 메소드를 통해 출력할 수 있도록 구현한다.

 실행 예)
 이름 입력 : 조윤상
 국어 점수 : 90
 영어 점수 : 80
 수학 점수 : 70

 >> 당신의 이름은 조윤상입니다.
 >> 국어 점수는 90,
 >> 영어 점수는 80,
 >> 수학 점수는 70,
 >> 총점은 240, 평균은 80입니다.
 >> 등급은 B 입니다.
 계속하려면 아무 키나 누르세요...

 


import java.io.*;

public class Test031
{
	public static void main(String[] args) throws IOException
	{
		//BufferedReader 인스턴스 생성
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		// 주요 변수 선언
		String name;
		int kor, eng, mat;
		int sum = 0;
		double avg; 
		char grade;
		//char grade = 'F';
		// 연산 및 처리
		System.out.print("이름 입력 : ");
		name = br.readLine();

		System.out.print("국어 점수 : ");
		kor = Integer.parseInt(br.readLine());

		System.out.print("영어 점수 : ");
		eng = Integer.parseInt(br.readLine());
		
		System.out.print("수학 점수 : ");
		mat = Integer.parseInt(br.readLine());

		sum = kor + eng + mat;

		//
		avg = sum / 3.0;	//check~!!!

		if (avg >= 90)
		{
			grade = 'A';
		}

		
		else if (avg >= 80)
		{
			grade = 'B';
		}
		else if (avg >= 70)
		{
			grade = 'C';
		}
		else if (avg >= 60)
		{
			grade = 'D';
		}
		else
			grade ='F';

		// 결과 출력
		System.out.println();
		System.out.println("당신의 이름은" + name + " 입니다." );
		System.out.println("국어 점수는 " + kor + ",\n영어 점수는 " + eng + ",\n수학 점수는 " + mat);
		System.out.println("총점은" + sum + ", 평균은" + avg + "입니다.");
		System.out.println("등급은" + grade + "입니다");
	}
}
// 실행 결과

/*
이름 입력 : 조윤상
국어 점수 : 90
영어 점수 : 80
수학 점수 : 70

당신의 이름은조윤상 입니다.
국어 점수는 90,
영어 점수는 80,
수학 점수는 70
총점은240, 평균은80.0입니다.
등급은B입니다
계속하려면 아무 키나 누르십시오 . . .
*/

+ Recent posts