我怎么分为[for(); ]

时间:2017-07-20 14:20:01

标签: java

我有一个代码可以检查数字是否为素数。

我希望代码获取用户输入并将其从1分割为他们输入的数字。

如果结果有3个或更多结果,则返回为false。 (素数只能除以1和它本身。)

这是我的代码:

  import java.util.Scanner;

  public class PrimeNumber {

    public static void main (String args[] ) {

     int num ;
     System.out.print("Enter a number : ");
     Scanner sc = new Scanner(System.in);
     num = sc.nextInt();

     for ( int n=1; num / n; n<num; n++ ){
        System.out.print(num + " is an integer. ");
     }
  }
}

num / n;,它不起作用。我希望num从1开始划分并自行停止并停止。

为什么我不能在for部分内部划分。我理解逻辑,但我不能让那部分工作。

3 个答案:

答案 0 :(得分:1)

for第二个参数必须是布尔条件:for( ; boolean condition; ) {}

第二个参数必须是布尔条件,而不是任何表达式。 在原始帖子中,如果您只是需要编译,请将其调整为num/n>0。 在当前版本上,要进行编译,只需将其从for循环中删除即可。

但是如果你需要知道一个数字是否为素数,请检查它:https://www.mkyong.com/java/how-to-determine-a-prime-number-in-java/

答案 1 :(得分:0)

我猜你要做的是

import java.util.Scanner;
public class PrimeNumber {
public static void main (String args[] ) {
    int num ;
    System.out.print("Enter a number : ");
    Scanner sc = new Scanner(System.in);
    num = sc.nextInt();
    for ( int n=1; n<num; n++ ){
        if (num % n == 0)
            System.out.print(n + " is an factor. ");
    }
}
}

答案 2 :(得分:-1)

我不明白你想做什么,但我想如果你尝试使用另一个有条件的话要好得多。

If(n<num)
{
  System.out.println(num + " is an integer. ");
}
else
{
System.out.println("false");
}