📚 Study/Java

JAVA :: Test072_클래스와 인스턴스(입력받은 임의의 정수까지 합을 출력하는 클래스 설계)

bono-hye 2023. 9. 10. 00:37

○ 실습

사용자로부터 임의의 정수를 입력받아 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 num;		//-- 사용자가 입력할 임의의 정수
	int sum=0;		//-- 1부터 num까지의 총합
	int n=1;		//-- 1부터 1씩 증가하는 수

	// 주요 기능 → 멤버 메소드

	// 임의의 정수 입력 기능
	void input() throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		do
		{
			System.out.print("임의의 정수 입력(1~1000) : ");
			num = Integer.parseInt(br.readLine());
		}
		while (num<1 || num>1000);
	}

	// 1부터 num까지 총합을 구하는 기능
	int calSum()
	{
		while (n<=num)
		{
			sum += n;
			n++;
		}
		return sum;
	}

	// 출력하는 기능
	void print()
	{
		System.out.printf(">>1 ~ %d 까지의 합 : %d\n", num, sum);
	}
}

public class Test072
{
	public static void main(String[] args) throws IOException
	{
		Hap ob = new Hap();

		ob.input();

		int sum = ob.calSum();

		ob.print();
	}
}

▼ 같이 작성한 코드

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.calcuate());			아래 식이랑 똑같음
		ob.print(s);

	}
}