プログラミングの新機能 あなたがコメントする前に:私は彼らがこれを行うより効率的な方法であり、既に持っていることを理解します。私はちょうどここのプロセスを理解することが私をより良いプログラマにすると思う。 私はクラスで見た擬似コードに従います。私は整数をとり、整数(userinput)までのすべての素数を出力するプログラムを書いた。 これは私が思い付いたものです:私はちょうど私が残りを得るために比較しています値が何を可視化するために、私のコードのさまざまな部分にprint文を/を持っていたヘルプが必要私のプログラム(素数)のロジックエラー/理解出力
//Import Scanner.
import java.util.Scanner;
//Create class.
public class QuestionTwoA2
{
public static void main(String[] args)
{
System.out.println("Enter an integer:"); //Ask for user input.
int userInteger; //Create scanner object and collect user input.
Scanner keyboard = new Scanner(System.in);
userInteger = keyboard.nextInt();
boolean primeFlag = true; //Condition required for prime number loop.
int outer; //I localised these variables outside the loop so that I
int inner; //could test output by printing it.
//Checks natural numbers in between 2 and userInteger.
for (outer = 2; outer < userInteger; outer++)
{
for (inner = 2; inner < outer; inner++)
{
if (outer % inner == 0)
{
primeFlag = false;
//System.out.println(outer + " " + inner);
break;
}
}
if (primeFlag) //I think this statement causes a logic problem.
System.out.println(outer);
}
}
}
。私の現在の出力は、(任意の整数入力用)です。
Enter an integer:
9
2
3
は、論理的に私のコードは正常に見えるが、明らかに動作しません、実際にははるかに高く評価されるだろうに何が起こっているかを説明するのに役立ちます。
内部ループの前にprimeFlag = trueを設定します – Nyavro
primeFlagをfalseに設定した後は、その初期値に決して設定しないでください。 – pvg