Notice
Recent Posts
Recent Comments
Link
«   2025/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
Archives
Today
Total
관리 메뉴

Everything has an expiration date

072 - Java 클래스와 인스턴스 : 사용자로부터 임의의 정수를 입력 받아 1부터 입력 받은 정수까지의 합을 클래스 Hap을 설계하여 처리하는 프로그램 본문

[Java]/Program source (java)

072 - Java 클래스와 인스턴스 : 사용자로부터 임의의 정수를 입력 받아 1부터 입력 받은 정수까지의 합을 클래스 Hap을 설계하여 처리하는 프로그램

Jelly-fish 2023. 9. 4. 16:50
/*========================================
	■■■ 클래스와 인스턴스 ■■■
=========================================*/

// 사용자로부터 임의의 정수를 입력받아
// 1 부터 입력받은 수 까지의 합을 연산하여
// 결과값을 출력하는 프로그램을 구현한다.

// 단, 지금까지처럼 main() 메소드에 모든 기능을 적용하는 것이 아니라
// 클래스와 인스턴스의 개념을 활용하여 처리할 수 있도록 한다.
// (Hap 클래스 설계)
// 또한, 데이터 입력 처리 과정에서 BufferedReader 의 readLine() 을 사용하며,
// 입력 데이터가 1보다 작거나 1000보다 큰 경우
// 다시 입력받을 수 있는 처리를 포함하여 프로그램을 구현할 수 있도록 한다.

// 실행 예)
// 임의의 정수 입력(1~1000) : 1200
// 임의의 정수 입력(1~1000) : -50
// 임의의 정수 입력(1~1000) : 100
// >> 1 ~ 100 까지의 합 : 5050
// 계속하려면 아무 키나 누르세요...

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


class Hap
{
	// 주요 변수 선언(사용자의 입력값을 담아낼 변수)
	int su;

	// 입력 메소드 정의
	void input() throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		do
		{		
			System.out.print("임의의 정수 입력(1~1000) : ");
			su = Integer.parseInt(br.readLine());
		}
		while (su<1 || su>1000);

	}

	// 연산 처리 메소드 정의
	int calculate()
	{
		int result = 0;

		for(int i = 1; i<= su ; i++)
		{
			result += i;
		}

		return result;
	}
	


	// 결과 출력 메소드 정의
	void print(int sum)
	{
		System.out.printf("\n>> 1 ~ %d 까지의 합 : %d\n", su, sum);
	}


}

public class Test072
{
	public static void main(String[] args) throws IOException
	{
		// Hap 인스턴스 생성
		Hap ob = new Hap();

		// 생성된 인스턴스를 통해 입력 메소드 호출
		// ----------------------
		//		참조변수 활용

		
		ob.input();				//-- new Hap().input();
		
		// 생성된 인스턴스를 통해 연산 메소드 호출
		int s = ob.calculate();
		
		// 생성된 인스턴스를 통해 출력 메소드 호출
		//ob.print(ob.calculate());
		ob.print(s);

	}
}

// 실행 결과

/*
임의의 정수 입력(1~1000) : 253

>> 1 ~ 253 까지의 합 : 32131
계속하려면 아무 키나 누르십시오 . . .
*/


/* [내가 한 풀이]==============================================
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

class Hap
{
	int inputNum;


	// 1. 정수를 입력받는 메소드 input() (제대로 입력할 때까지 반복)
	int input() throws IOException
	{	
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		do
		{
			System.out.print("임의의 정수 입력(1~1000) : ");
			inputNum = Integer.parseInt(br.readLine());

		}
		while (inputNum < 1 || inputNum > 1000);

		return inputNum;
	}

	// 2. 1부터 입력받은 정수값 inputNum까지의 합을 구하는 메소드 adder()
	int adder()
	{
		int result = 0;

		for (int i = 1; i <= inputNum ; i++)
		{
			result += i;
		}
		
		return result;

	}
	// 입력 정수값까지 매개변수로 넣는 것으로 변경 


	// 3. 결과값을 출력하는 메소드 print();
	// >> 1 ~ 100 까지의 합 : 5050
	 void print(int a, int sum)
	{
		System.out.printf(">> 1 ~ %d 까지의 합 : %d\n", a, sum);
	}




}


public class Test072
{
	public static void main(String[] args) throws IOException
	{
		
		// Hap 클래스를 참조하여 인스턴스 생성
		Hap ob = new Hap();
						// 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
						// Hap.input() (Ⅹ)
						// 반드시 인스턴스를 생성한 참조변수 명으로 Hap의 함수를 불러오도록 한다.
						// 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

		// Hap 클래스의 input() 메소드를 불러와서, 사용자에게 정수를 입력 받는다.
		int a = ob.input();
		
		// Hap 클래스의 adder() 메소드를 불러와서, 1부터 inputNum까지의 합을 계산하고
		// 그 결과값을 sumResult에 저장한다.
		int sumResult = ob.adder();

		// Hap 클래스의 print() 메소드를 불러와서, 연산 결과를 출력한다. 
		ob.print(a, sumResult);
	}
}

=======================================================================================*/