JAVA

 ※ java.util.Scanner

   단락 문자 패턴을 사용하여 입력을 토큰에 따라 분할하며, 디폴트(default)로 사용되는 단락문자는 공백이다.
   작성된 다음 토큰은 "next()" 메소드를 사용 다른 형태(자료형)의 값으로 변환할 수 있다.

 



import java.util.Scanner;

public class Test016
{
	public static void main(String[] args)
	{
		// Scanner 인스턴스 생성
		Scanner sc = new Scanner(System.in);

		// 주요 변수 선언
		String name;			//-- 이름
		int kor, eng, mat;		//-- 국어, 영어, 수학 점수


		// 연산 및 처리
		System.out.print("이름을 입력하세요 : ");
		name = sc.next();

		System.out.print("국어 점수 입력 : ");
		kor = sc.nextInt();

		System.out.print("영어 점수 입력 : ");
		eng = sc.nextInt();

		System.out.print("수학 점수 입력 : ");
		mat = sc.nextInt();


		// 결과 출력
		System.out.println();
		System.out.println(">> 이름 : " + name);
		System.out.println(">> 총점 : " + (kor + eng + mat));

	}
}
//실행 결과
/*
이름을 입력하세요 : 조윤상
국어 점수 입력 : 90
영어 점수 입력 : 80
수학 점수 입력 : 70

>> 이름 : 조윤상
>> 총점 : 240
계속하려면 아무 키나 누르십시오 . . .
*/

print() 메소드는 모니터에 데이터를 출력할 때 사용하는 함수이다.

printf() 메소드도 마찬가지로 모니터에 데이터를 출력하는 함수이나

print메소드 + f(formatted) 즉, 포맷팅 기능이 더해져 사용자가 원하는 형태로 출력하기 위해

 

1. 서식문자를 지정할 수 있다.

2. 자릿수를 지정할 수 있다.

3. 플래그를 지정할 수 있다.

 

 

printf()의 서식을 살펴보자면 아래와 같다.

 

 

출력하고자하는 데이터를 자릿수를 잡고 출력을 해줄수 있다.

%[자릿수]만큼 의 자리를 할당하여 그 공간내에서 오른쪽부터 출력을 해준다. 남는 자리는 공백으로 채워지게 된다.

 

 


public class Test015
{
	public static void main(String[] args)
	{
		System.out.print("AAA");
		System.out.print("BBB");
		System.out.print("CCC\n");	//-- "\n" 개행
		//--==>> AAABBBCCC

		//System.out.print();
		//--==>> 에러 발생(컴파일 에러)

		System.out.println();	// 개행

		System.out.printf("12345678901234567890");
		System.out.printf("12345678901234567890\n");	//-- "\n" 개행
        	System.out.printf("12345678901234567890%n");	//-- "%n" 개행
        
		//System.out.printf();
		//--==>> 에러 발생(컴파일 에러)

		 
		System.out.printf("%d + %d = %d\n", 10, 20, 30);
		//--==>> 10 + 20 = 30

		System.out.printf("%d\n", 123);
		System.out.printf("%10d\n", 123);
		System.out.printf("%8d\n", 1234);
		System.out.printf("%010d\n", 123);
		//--==>> 123
		//              123
		//           1234
		//       0000000123

		System.out.printf("%d\n", 365);
		System.out.printf("%d\n", +365);
		//--==>> 365
		//		 365

		System.out.printf("%+d\n", 365);
		System.out.printf("+%d\n", 365);
		//--==>> +365
		//		 +365

		System.out.printf("%d\n", 365);
		System.out.printf("%d\n", -365);
		//--==>> 365
		//		 -365

		//System.out.printf("%-d\n", 365);
		//--==>> 에러 발생(런타임 에러)
		System.out.printf("-%d\n", 365);
		//--==>> -365

		System.out.printf("%(d\n", -365);
		System.out.printf("%(d\n", 365);
		//--==>> (365)
		//		 365

		
		//System.out.printf("%d\n",'A');
		//--==>> 에러 발생(런타임 에러)
		System.out.printf("%c\n", 'A');
		//--==>> A

		
		//System.out.printf("%c\n", "ABCD");
		//--==>> 에러 발생(런타임 에러)
		System.out.printf("%s\n", "ABCD");
		//--==>> ABCD

		
		System.out.printf("%h\n", 365);
		//--==>> 16d (16진수)
		System.out.printf("%o\n", 24);
		//--==>> 30 (8진수)


		System.out.printf("%b\n",true);
		System.out.printf("%b\n",false);
		//--==>> true
		//		 false


		System.out.printf("%f\n", 123.23);
		//--==>> 123.230000
		System.out.printf("%.2f\n", 123.23);
		//--==>> 123.23


		System.out.printf("%.2f\n", 123.231);
		System.out.printf("%.2f\n", 123.236);
		//--==>> 123.23
		//       123.24

		
		System.out.printf("%8.2f\n", 123.236);
		//--==>>__123.24

		System.out.printf("%2.2f\n", 123.236);
		//--==>> 123.24






	}
}

// 실행 결과
/*
AAABBBCCC

1234567890123456789012345678901234567890
12345678901234567890
10 + 20 = 30
123
       123
    1234
0000000123
365
365
+365
+365
365
-365
-365
(365)
365
A
ABCD
16d
30
true
false
123.230000
123.23
123.23
123.24
  123.24
123.24
계속하려면 아무 키나 누르십시오 . . .
*/

※ "System.in.read()"메소드는 한 문자만 가져온다.

단, 하나의 문자를 입력받아 입력받은 해당 문자의 ASCII Code 값(정수 형태)을 반환하게 된다.

 

 실행 예) 
 한 문자 입력 : A
 한 자리 정수 입력 : 7

 >> 입력한 문자 : A
 >> 입력한 정수 : 7
 계속하려면 아무 키나 누르세요...


import java.io.IOException;

public class Test014
{
	public static void main(String[] args) throws IOException
	{
		// 주요 변수 선언
		char ch;		//입력받을 문자
		int n;			//입력받을 한자리 정수
		char temp;

		// 연산 및 처리
		System.out.print("한 문자 입력 : ");
		ch = (char)System.in.read();
		System.in.skip(2);

		System.out.print("한 자리 정수 입력 : ");
		temp = (char)System.in.read();
		
		// 결과 출력
		System.out.println("\n >> 입력한 문자 : " + ch);
		System.out.println("\n >> 입력한 정수 : " + temp);


/*
		// 주요 변수 선언
		char ch;		//입력받을 문자
		int n;			//입력받을 한자리 정수
		
		// 연산 및 처리
		System.out.print("한 문자 입력 : ");
		ch = (char)System.in.read();
		System.in.skip(2);

		System.out.print("한 자리 정수 입력 : ");
		n = System.in.read();
		
		
		// 결과 출력
		System.out.println("\n >> 입력한 문자 : " + ch);
		System.out.println("\n >> 입력한 정수 : " + (n-48));
*/
	}
}

// 실행 결과
/*
한 문자 입력 : A
한 자리 정수 입력 : 7

 >> 입력한 문자 : A

 >> 입력한 정수 : 7
계속하려면 아무 키나 누르십시오 . . .
*/

 


※ 사용자로부터 이름, 국어점수, 영어점수, 수학점수를 입력받아 이름과 총점을 출력하는 프로그램을 구현한다.

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

 ====[결과]====
 이름 : 조윤상
 총점 : 240
 계속하려면 아무 키나 누르세요...

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

public class Test013
{
	public static void main(String[] args) throws IOException
	{
		// BufferedReader 인스턴스 생성
		InputStreamReader isr = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(isr);
		// BufferedReader br = new BufferedReader(new InputStreamReader(System.in) 와 같은 구문

		// 주요 변수 선언
		String strName;			//-- 이름 변수
		int nKor, nEng,nMat;	//-- 국어, 영어, 수학 점수 변수
		int nTot;				//-- 총점 변수
		
		// 추가 변수 선언
		String strTemp;			//-- 문자열 데이터를 임시로 저장할 변수
		

		// 연산 및 처리
		// ① 사용자에게 안내 메세지 출력 → 이름 입력 안내
		System.out.print("이름을 입력하세요 : ");

		// ② 사용자가 입력한 값(외부 데이터)를 변수에 담아내기
		strName = br.readLine();

		// ③ 사용자에게 안내 메세지 출력 → 국어점수 입력 안내
		System.out.print("국어 점수 입력 : ");
		
		// ④사용자가 입력한 값을 정수 형태로 변환한 후 nKor 변수에 담아내기
		strTemp = br.readLine();
		nKor = Integer.parseInt(strTemp);
		
		// ⑤ 사용자에게 안내 메세지 출력 → 영어점수 입력 안내
		System.out.print("영어 점수 입력 : ");

		// ⑥ 사용자가 입력한 값을 정수 형태로 변환한 후 nEng 변수에 담아내기
		strTemp = br.readLine();
		nEng = Integer.parseInt(strTemp);

		// ⑦ 사용자에게 안내 메세지 출력 → 수학점수 입력 안내
		System.out.print("수학 점수 입력 : ");

		// ⑧ 사용자가 입력한 값을 정수 형태로 변환한 후 nMat 변수에 담아내기
		strTemp = br.readLine();
		nMat = Integer.parseInt(strTemp);

		// ⑨ 각 점수 변수에 담겨있는 데이터(입력 데이터)들을
		//	  종합하여 덧셈 연산을 수행하는 과정을 거쳐 총점을 산출하고
		//	  그 결과를 총점 변수에 담아내기

		nTot = nKor + nEng + nMat;


		// 결과 출력
		//System.out.println();	// 개행

		System.out.println("====[결과]====");
		//System.out.println("이름 : " + strName);
		//System.out.println("이름 : ○\n" + strname);
		System.out.printf("이름 : %s\n", strName);
		System.out.printf("총점 : %d\n", nTot);

	}
}

// 실행 결과
/*
이름을 입력하세요 : 조윤상
국어 점수 입력 : 90
영어 점수 입력 : 80
수학 점수 입력 : 70
====[결과]====
이름 : 조윤상
총점 : 240
계속하려면 아무 키나 누르십시오 . . .
*/

  ※  삼각형의 밑변의 길이와 높이를 사용자로부터 입력받아 이 삼각형의 넓이를 구하는 프로그램을 구현한다.

 실행 예) 
 ■ 삼각형의 넓이 구하기 ■
 - 삼각형의 밑변 입력 : 3
 - 삼각형의 높이 입력 : 5

 >> 밑변이 3, 높이가 5인 삼각형의 넓이 : xxxx
 계속하려면 아무 키나 누르세요...

 ※ 삼각형의 넓이 = 밑변 * 높이 / 2
 ※ 사용자로부터 데이터를 입력받아 처리 → BufferedReader 활용


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


public class Test012
{
	public static void main(String[] args) throws IOException
	{
		// BufferedReader 인스턴스 생성
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		// 주요 변수 선언
		int underLength;			// 밑변
		int height;					// 높이
		double area;				// 넓이

		// 연산 및 처리
		// ① 사용자에게 안내 메세지 출력
		System.out.println("■ 삼각형의 넓이 구하기 ■");
		System.out.print(" - 삼각형의 밑변 입력 : ");

		// ② 사용자가 입력한 데이터를 정수 형태로 변환한 후
		//	  변수 underLength 에 담아내기
		underLength = Integer.parseInt(br.readLine());
		
		// ③ 다시 사용자에게 안내 메세지 출력
		System.out.print(" - 삼각형의 높이 입력 : ");

		// ④ 사용자가 입력한 데이터를 정수 형태로 변환한 후
		//	  변수 height 에 담아내기
		height = Integer.parseInt(br.readLine());

		// ⑤ 삼각형의 넓이를 구하는 연산 처리
		area = underLength * height / 2.0;			// check~!!!
		//		  정수형	 정수형	  정수형 → 정수 기반 연산 → 몫만 취하는 연산
		//		  정수형	 정수형	  실수형 → 실수 기반 연산 → 나머지 포함 연산

		// ※ 실수 자료형이 결과값으로 나오는 과정에서
		//	  실수 기반의 연산이 필요한 상황이다.
		//	  정수형 "2" 가 아닌 실수형 "2.0" 으로 나눗셈 연산을 수행하게 되면
		//	  이 연산은 실수 기반으로 처리된다.

		
		// 결과 출력
		System.out.println();	// 개행
		//System.out.print();	// 에러 발생
		
		System.out.printf(">> 밑변이 %d, 높이가 %d인 삼각형의 넓이 : %.2f\n",underLength,height,area);
		
	}	
}

// 실행 결과
/*
■ 삼각형의 넓이 구하기 ■
- 삼각형의 밑변 입력 : 3
- 삼각형의 높이 입력 : 5
>> 밑변이 3, 높이가 5인 삼각형의 넓이 : 7.50
계속하려면 아무 키나 누르십시오 . . .                   
*/

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

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

		// 주요 변수 선언
		int r;						//-- 반지름
		final double PI = 3.141592;	//-- 원주율
		double a, l;				//-- 넓이, 둘레

		// 연산 및 처리

		// ① 사용자에게 안내 메세지 출력
		System.out.print("원의 반지름 입력 : ");

		
		// ② 사용자가 입력한 값을 받아와 반지름 변수 r 에 담아내기 
		// BufferedReader 안에... readLine() 메소드... 외부 입력값 가져오기
		// r = br.readLine();
		// r = "30";----------------(x)
		// r parseInt();		  → 매개변수로 넘겨받은
		//							 숫자 모양의 문자열 데이터를 정수형으로 변환
		// r = Integer.parseInt() → Integer 에 들어있는 parseInt()
		// r = Integer.parseInt("30");
		r = Integer.parseInt(br.readLine());
		// r = Integer.parseInt(br.readLine());
		// r = 30;

		//-- 사용자가 입력한 값을 BufferedReader(br)의 "readLine()"
		//	 메소드를 활용하여 읽어들인 후
		//	 그 값을 "Integer.parse()" 를 통해 숫자형(정수형)으로 변환한 후
		//	 정수 형태의 반지름 변수 r 에 담아내기

		// ③ 원의 넓이 및 둘레 연산
		a = r * r * PI;
		l = r * 2 * PI;
		// 결과 출력
		/*
		System.out.println(">> 넓이 : " + a);
		System.out.println(">> 둘레 : " + l);
		*/

		//System.out.printf("넓이 : %f \n", a);
		//System.out.printf("둘레 : %f \n", l);
		
		System.out.printf("넓이 : %.2f \n",a);
		System.out.printf("둘레 : %.2f \n",l);
		//-- "%f" 는 실수형을 담아내는 옵션 문자
		//	 "%.2f" 는 소수점 이하 두 번째 자리까지 표현하겠다는 의미
		//   → 세 번째 자리에서 반올림




	}
}
// 실행 결과
/*
원의 반지름 입력 : 30
넓이 : 2827.43
둘레 : 188.50
계속하려면 아무 키나 누르십시오 . . .
*/

+ Recent posts