繰り返し文の変数宣言
7016 ワード
1つ以上の自然数を入力し、2から対応する数までの小数を返します.
原因が分からず、しばらくうろうろしていました.後で原因が分かった.
問題は、上記のコードの注釈処理の部分です.(コメントで表示)
繰り返し文の外でisPrime=trueと宣言すると、
繰り返し文のi%n==0の最初の9%3==0の部分で
isPrimeはfalseになります.
それなら、あの時から複文の中に
したがって,繰り返し文が再実行されるたびにisPrime=true値を再付与する必要があると結論した.
function listPrimes(num) {
let result = '2';
**let isPrime = true;**
for (let i = 3; i <= num; i += 2) {
for (let n = 3; n <= Math.sqrt(i); n += 2){
if (i % n === 0) {
isPrime = false;
break;
}
}
if (isPrime === true) {
result = result + '-' + i;
}
}
return result;
}
全体の論理はすでに把握されているが、11以上の少数の人は回復できない.原因が分からず、しばらくうろうろしていました.後で原因が分かった.
問題は、上記のコードの注釈処理の部分です.(コメントで表示)
繰り返し文の外でisPrime=trueと宣言すると、
繰り返し文のi%n==0の最初の9%3==0の部分で
isPrimeはfalseになります.
それなら、あの時から複文の中に
if (isPrime === true)
この部分の意味は消えた.繰り返し文が再実行されてもisPrimeはfalseであるためです.したがって,繰り返し文が再実行されるたびにisPrime=true値を再付与する必要があると結論した.
function listPrimes(num) {
let result = '2';
for (let i = 3; i <= num; i += 2) {
**let isPrime = true;**
for (let n = 3; n <= Math.sqrt(i); n += 2){
if (i % n === 0) {
isPrime = false;
break;
}
}
if (isPrime === true) {
result = result + '-' + i;
}
}
return result;
}
(注釈処理)このような繰り返し文内でisPrime=true;書きます.Reference
この問題について(繰り返し文の変数宣言), 我々は、より多くの情報をここで見つけました https://velog.io/@taero30/반복문-중-변수선언テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol