다음 알고리즘을 사용하여 PI를 계산하는 프로그램을 만들려고합니다.
PI = 4 x (1 - 1/3 + 1/5 - 1/7 + 1/9 ....) etc.
연산자 배치가 변수에 미치는 영향을 이해하지 못합니다.
루프의 첫 번째 반복에서 생성 된 결과는 의미가 있지만 초기화 된 값으로 재설정되고 두 번째로 할당 연산자를 무시하는 것 같습니다. 이 결과 1, 결과 2, 결과 1, 결과 2 등을 반복합니다.
나는 "Java : How to Program (Early Objects), 11th Edition"이라는이 책을 살펴 보았고 4 장에서는 연산자를 살펴 보았지만 루프 내의 조건을 다루지 않는다는 것을 알 수있었습니다.
double k = 1.0, j = 1.0;
double sum = 0, PI = 0;
while((Math.abs(PI-Math.PI)>0.000001)){
sum += k/j;
j = j + 2;
k=-k;
PI = 4 * sum;
System.out.println(k);
}
while 루프의 조건을 4 번 실행하고 k를 인쇄하도록 변경했습니다. 변수 'k'의 첫 번째 인쇄는 -1.0이 될 것으로 예상했습니다. 하지만 k의 두 번째 인쇄 (while 루프의 두 번째 루프)는 1.0입니다. 세 번째는 -1.0이고, 네 번째는 1.0입니다.
내가 아는 한 왼쪽 연산자가 '='이고 오른쪽 연산자가 증분 또는 증분 기호이면 Java 할당 연산자를 사용하면 모든 반복에서 -1.0이 아닌 이유를 이해할 수 없습니다. 항상 변수 k는 항상 = -k 여야합니다.
루프 전
k = 1
루프 # 1 k = -(1.0)
: 그래서 지금 k = -1.0
, 그것은 실시있어 -1.0
다음 루프까지.
루프 # 2 k = -(-1.0)
: 그래서 지금 k = 1.0
, 그것은 실시있어 1.0
다음 루프까지.
루프 # 3 k = -(1.0)
: 그래서 지금 k = -1.0
, 그것은 실시있어 -1.0
다음 루프까지.
등등
k
모든 루프 j
가 아닌 것처럼 모든 루프를 변경 3.0
합니다.
당신이 말하는 증분 및 감소 기호는 아마도 k--
and k++
, 또는 어쩌면 k-=k
and k+=k
입니다. 잘 모르겠습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다