📚 Study/Java
JAVA :: Test051_반복문 while (두 정수를 입력 받아 작은 수 부터 큰 수까지 합을 구하는 프로그램 구현)
bono-hye
2023. 9. 9. 00:55
○ 실습
사용자로부터 임의의 두 정수를 입력 받아
입력 받은 두 정수 중
작은 수 부터 큰 수 까지의 합을 구하여
결과를 출력하는 프로그램을 구현한다.
실행 예)
첫 번째 정수 입력 : 100
두 번째 정수 입력 : 200
>> 100 ~ 200 까지의 합 :xxxx
계속하려면 아무 키나 누르세요...
첫 번째 정수 입력 : 1000
두 번째 정수 입력 : 2
>> 2 ~ 1000 까지의 합 :xxxx
계속하려면 아무 키나 누르세요...
첫 번째 정수 입력 : 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
{
int num1, num2;
int a;
int sum=0;
int temp1, temp2;
temp1=temp2=0;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("첫 번째 정수 입력 : ");
num1 = Integer.parseInt(br.readLine());
System.out.print("두 번째 정수 입력 : ");
num2 = Integer.parseInt(br.readLine());
if (num1 <= num2)
{
temp1 = num1;
while (temp1<=num2)
{
sum += temp1;
temp1++;
}
System.out.printf ("%d ~ %d 까지의 합 : %d\n", num1, num2, sum);
}
else
{
temp2 = num2;
while (temp2 <= num1)
{
sum += temp2;
temp2++;
}
System.out.printf ("%d ~ %d 까지의 합 : %d\n", num2, num1, sum);
}
}
}
▼ 같이 작성한 코드
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);
}
}