안녕하세요 여러분, 제 CS 클래스에 대해 정말 쉬운 계산 프로그램을 작성하려고 노력하고 있습니다. 그러나 어떤 이유로 든 "다시 입력하십시오. 숫자를 입력하십시오. 0 멈추다) : "프롬프트가 나타나고 while 루프를 완전히 무시한 것처럼 보입니다. while 루프 내부의 조건이 충족되면 0을 입력해도 while 루프가 멈추지 않는 이유는 무엇입니까? 나는 과거에 C#을 해왔지만, Java의주의 사항에 대해서는 잘 알고 있지 않습니다. Java가 나에게 알려주지 않는 이상한 점이 있으면 알려주십시오. 프로그램에 대한 더 자세한 설명은 사용자로부터 음수와 양수를 읽고, 음수와 양수의 합계를 개별적으로 출력 한 다음 평균을 취하기로되어 있습니다. (당연히 아래는 단지 문제가되는 코드 조각 일뿐입니다.)while 루프가 계속되는 동안에도 루프가 계속됩니다
Scanner scanner = new Scanner(System.in);
double average;
double numPositive=0.0;
double numNegative=0.0;
double input = 0.0;
do
{
System.out.print("Please enter a number (0 to stop): ");
input = scanner.nextDouble();
if (input < 0.0)
{
numNegative += scanner.nextDouble();
}
else if (input > 0.0)
{
numPositive += scanner.nextDouble();
}
} while (Math.abs(input) > 1.0e-6); // make the tolerance whatever you want.
한 가지 조언 : "프로그램이 논리를 따르지 않거나 논리를 구현하는 데 몇 가지 실수를 저질렀습니다"라고 생각하면 어느 시점에서 보통 후자의 대답이 적합합니다. – SJuan76
우수한 조언, SJuan76. – duffymo