Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java素数检查未按预期工作_Java - Fatal编程技术网

Java素数检查未按预期工作

Java素数检查未按预期工作,java,Java,我已经写了检查素数的代码,但是它没有给我正确的输出 int flag; Scanner s = new Scanner (System.in); System.out.println("enter upper nd lower bound"); int lower = s.nextInt(); int upper = s.nextInt(); int i=0; int j=0; for ( i =lower ; i<=upper

我已经写了检查素数的代码,但是它没有给我正确的输出

 int flag;
    Scanner s = new Scanner (System.in);
    System.out.println("enter upper nd lower bound");
    int lower = s.nextInt();
    int upper = s.nextInt();
    int i=0;
    int j=0;
    for (  i =lower ; i<=upper ;i++){
        if(i==1){
        continue;
        }
    }
        flag =1;
         for (  j = 2 ; j<=i/2 ; j++) {
            if(i%j==0)
                flag = 0;
                break;
        }
    if(flag == 1){
        System.out.println(i);
    }
int标志;
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入上下限”);
int lower=s.nextInt();
int upper=s.nextInt();
int i=0;
int j=0;
对于(i=lower;i
/*包无论如何;//不要放置包名*/
导入java.util.*;
导入java.lang.*;
导入java.io.*;
/*只有当类是公共的时,类的名称才必须是“Main”*/
表意文字
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
布尔标志;
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入上限和下限”);
int lower=s.nextInt();
int upper=s.nextInt();

对于(int i=lower;i代码的主要问题是,第二个
for循环
应该嵌套在第一个
for循环
中。因为第二个
for循环
中的代码得到了
i=11
。当我们将第二个
for循环
放入嵌套的
for循环
中时,将有不同的值de>i
基于条件

        Boolean flag;
        Scanner s = new Scanner (System.in);
        System.out.println("enter upper nd lower bound");
        int lower = s.nextInt();
        int upper = s.nextInt();
        int i=0;
        int j=0;
        for (  i =lower ; i<=upper ;i++){
            if(i==1){
            continue;
            }
        flag =true;
             for (  j = 2 ; j<=i/2 ; j++) {
                if(i%j==0)
                    flag =false;
                    break;
            }
        if(flag){
            System.out.println(i);
        }
}
布尔标志;
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入上下限”);
int lower=s.nextInt();
int upper=s.nextInt();
int i=0;
int j=0;

对于(i=lower;i)您期望的输出是什么?您的代码编写不正确,它包含error@villat我的预期输出是2 3 5 7。因为这些是介于1到10之间的素数,看起来像是放错了位置的
}
。在第二个循环开始之前,你的第一个
for
循环需要
i
一直到11。你的第二个循环应该嵌套在第一个循环中,而你在第一个循环之后逻辑上得到了它。@Andra如果代码中没有错误,Ajay可能就不需要在这里问问题了。thanx但是你能帮我解决我的错误吗code@AjayKumarSinha它只是花括号
}
,就在
标志=1的正上方;
,您必须将其移动到代码的末尾。此外,您只检查
i==1
是否存在无效的素数检查,而您不能检查1右下方任何数字的素数?这就是为什么我将其更改为
i@AjayKumarSinha“请将其标记为答案”的原因?
        Boolean flag;
        Scanner s = new Scanner (System.in);
        System.out.println("enter upper nd lower bound");
        int lower = s.nextInt();
        int upper = s.nextInt();
        int i=0;
        int j=0;
        for (  i =lower ; i<=upper ;i++){
            if(i==1){
            continue;
            }
        flag =true;
             for (  j = 2 ; j<=i/2 ; j++) {
                if(i%j==0)
                    flag =false;
                    break;
            }
        if(flag){
            System.out.println(i);
        }
}