나는 0 범위에서 사용자가 입력 한 숫자의 짝수의 합계를 인쇄하는 프로그램을 만들고 있습니다. 예를 들어, 사용자가 20 번을 입력하면 프로그램은 0과 20 사이의 모든 짝수의 합계를 계산합니다.자바 프로그램 무한 루프 짝수 정수의 합계
번호가 10 인 프로그램을 테스트했을 때 효과적이었습니다. 하지만 다른 숫자 인 35를 사용해 보았는데 무한 루프에 막 달라 붙었습니다. 나는 모든 도움에 감사 할 것입니다. 코드는 아래에 게시됩니다 :
(편집) 피드백을 보내 주셔서 감사합니다! 친구와 이야기를 한 후에, 우리는 그 해결책이 실제로 매우 간단하다는 것을 깨달았습니다. 우리는 단지 그것을 복잡하게 만들고있었습니다. 그래도 모든 제안에 감사드립니다.
//**************************************************************
// Prints the sum of the even numbers within a range of 0
// and the integer that the user enters.
//
// @me
// @version_1.0_11.7.17
//**************************************************************
import java.util.Scanner;
public class EvenNumbersSum
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int user_num = 2; // variable that stores the user's number
int sum; // stores the sum of the needed values
System.out.print("Enter an integer greater than or equal to, 2: "); // prompt user for input
user_num = input.nextInt();
// checks to see if the value entered is valid or not.
while (user_num < 2)
{
System.out.println("Invalid entry. Must enter an integer greater than or equal to, 2.\n");
System.out.print("Enter an integer greater than or equal to, 2: ");
user_num = input.nextInt();
}
// starts adding the values
for (sum = 0; sum <= user_num;)
{
if (user_num % 2 == 0) // checks if the number is even
sum+=user_num; // add the number to sum
else
continue; // I thought that I might need this, but ended up changing nothing.
}
System.out.println(); // extra line for cleanliness
System.out.printf("The sum of the even numbers between 0 and %d is %d.", user_num, sum); // prints the result
}
}
user_num은 for 루프 내에서 변경되지 않습니다. 입력을 다시 받아 들여야합니다. –
for 문에서'term '을'user_num'과 비교하는 이유는? – John3136
'for (sum = 0; sum <= user_num;)'이 맞지 않습니다.'user_num' 번을 반복하고 싶지 않으십니까? 그런 다음이 값을 사용하여 숫자를 합산할지 여부를 결정하십시오. – MadProgrammer