繁体   English   中英

为什么我的程序在循环时不打印偶数?

[英]Why is my program not printing even numbers do while loop?

我创建了一个do while循环,即使使用modjule符号,它仍然无法从列表中打印偶数,这是怎么回事?

  int w=1;
    do {
    Scanner keyboard = new Scanner(System.in);
    System.out.println(w);
    w++;
    if(w%2==0);   

    } 
    while (w<=2015);

   }
}

您的代码应该是

int w=1;
    do {
    Scanner keyboard = new Scanner(System.in);
    System.out.println(w);
    if(w%2==0)
    System.out.println("Even value : "+ w);
    w++;
    } 
    while (w<=2015);

   }
}

if语句后删除分号

  if(w%2==0); <- Remove this semicolon

并在if语句中获取或打印偶数。

  if(w%2==0){
     System.out.println("Even valud is "+ w)        
  }

对于均匀测试,我更希望按位&操作以提高性能。

 if((w & 1) ==0){// & is more faster than %
     System.out.println("Even valud is "+ w)        
  }

这非常简单,可能已经在注释中得到了答案,但这是一个更完整的代码块:

Scanner keyboard = new Scanner(System.in); // you never use this, why is it here?
int w=1;
do {
    w++;
    if(w % 2==1) 
        System.out.println("Odd: " + w);
    else System.out.println("Even: " + w);
} while (w <= 2015);

您可能应该查看此代码的所有部分,并确保您看到它的实际工作原理以及错误的出处。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM