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

051 - Java 반복문 while을 이용해, 사용자로부터 입력 받은 두 정수 중 작은 값부터 큰 값까지의 누적합 연산 결과를 출력하는 프로그램 본문

[Java]/Program source (java)

051 - Java 반복문 while을 이용해, 사용자로부터 입력 받은 두 정수 중 작은 값부터 큰 값까지의 누적합 연산 결과를 출력하는 프로그램

Jelly-fish 2023. 8. 31. 13:41
/*=========================================
	■■■ 실행 흐름의 컨트롤(제어문) ■■■
	- 반복문(while문) 실습 및 관찰
===========================================*/


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

// 실행 예)
// 첫 번째 정수 입력 : 100
// 두 번째 정수 입력 : 200
// >> 100 ~ 200 까지의 합 : xxxxx
// 계속하려면 아무 키나 누르세요...

// 첫 번째 정수 입력 : 1000
// 두 번째 정수 입력 : 2
// >> 2 ~ 1000 까지의 합 : xxxxx
// 계속하려면 아무 키나 누르세요...


// 첫 번째 정수 입력 : 10
// 두 번째 정수 입력 : 10
// >> 10 ~ 10 까지의 합 : 10
// 계속하려면 아무 키나 누르세요...


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


public class Test051
{
	public static void main(String[] args) throws IOException
	{
		// 주요 변수 선언
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int n;				//-- 루프 변수로 활용할 변수
		int su1, su2;		//-- 첫 번째, 두 번째 사용자 입력값을 담아낼 변수
		int result = 0;		//-- 누적합을 담아낼 변수

		// 연산 및 처리
		System.out.print("첫 번째 정수 입력 : ");
		su1 = Integer.parseInt(br.readLine());

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

		// 입력받은 두 수의 크기 비교 및 자리 바꿈
		// 즉, su1 이 su2 보다 큰 경우 두 수의 자리를 바꿀 수 있도록 처리
		if (su1 > su2)
		{
			// 자리 바꿈
			su1 = su1 ^ su2;
			su2 = su2 ^ su1;
			su1 = su1 ^ su2;

		}

		// 반복 연산 수행
		// 반복 연산을 수행하기 전에
		// 작은 수를 따로 저장하여 루프 변수로 활용한다.
		// (결과 출력 과정에서 입력받은 작은 수가 필요한데...
		//  그 수를 반복 과정에서 사용하게 되면...
		//  원래 처음 입력된 값을 확인할 수 없기 때문에...)
		n = su1;

		while (n <= su2)
		{
			result += n;
			n++;
		}



		// 결과 출력
		System.out.printf(">> %d ~ %d 까지의 합 : %d\n", su1, su2, result);


	}
}


// 실행 결과

/*
첫 번째 정수 입력 : 1
두 번째 정수 입력 : 100
>> 1 ~ 100 까지의 합 : 5050
계속하려면 아무 키나 누르십시오 . . .
*/





/* [내가 한 풀이]========================================================
public class Test051
{
	public static void main(String[] args) throws IOException
	{
		// 1. 변수 선언
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int a, b;
		int startNum, finalNum;
		int i;					// startNum 값을 대입해서 1씩 증가시킬 루프 변수.
		int sum = 0;

		// 2. 사용자로부터 입력 받기
		System.out.print("첫 번째 정수 입력 : ");
		a = Integer.parseInt(br.readLine());
		
		System.out.print("두 번째 정수 입력 : ");
		b = Integer.parseInt(br.readLine());

		// 3. 입력받은 a, b 중 어떤 것이 더 큰지를 판별.
		if (a < b)	// a가 b보다 작다. 
		{
			// ▶true : ◎start = a  ◎final = b
			startNum = a;
			i = startNum;
			finalNum = b;
		}
		else		// a가 b보다 크다.
		{
			// ▶false : ◎start = b  ◎final = a
			startNum = b;
			i = startNum;
			finalNum = a;
		}


		// 4. while 문을 통해 start ~ final 까지의 누적합 연산 수행하기.
		while (i <= finalNum)
		{
			System.out.println( "[startNum] : " + i + "  [finalNum] : " + finalNum);
			sum += i;
			i++;
			System.out.println( "[sum] : " + sum);
		}
		
		// 5. 결과 출력하기
		// 첫 번째 정수 입력 : 1000
		// 두 번째 정수 입력 : 2
		// >> 2 ~ 1000 까지의 합 : xxxxx
		// 계속하려면 아무 키나 누르세요...

		System.out.printf("\n>> %d ~ %d 까지의 합 : %d\n", startNum, finalNum, sum);


	}
}
==========================================================*/