素数测试初学者Java
测试正数(称为num)是否为素数的大学作业。 我必须使用Do-while循环 我尝试了以下代码,但测试失败素数测试初学者Java,java,Java,测试正数(称为num)是否为素数的大学作业。 我必须使用Do-while循环 我尝试了以下代码,但测试失败 public class Primes { public static main void (String args[]){ int num = 1; int 2 = 0; boolean flag = false; do { if (num%i == 1) { flag = true; break: } num ++ while (i<=num); { if (flag = tr
public class Primes {
public static main void (String args[]){
int num = 1;
int 2 = 0;
boolean flag = false;
do {
if (num%i == 1) {
flag = true;
break:
}
num ++
while (i<=num);
{
if (flag = true);
{
System.out.println (num + "is a prime number ");
}
else
{
System.out.prinln (num + "is not a prime number ");
}
}
}
}
公共类素数{
公共静态主无效(字符串参数[]){
int num=1;
int 2=0;
布尔标志=假;
做{
如果(数量%i==1){
flag=true;
中断:
}
num++
而(i你有两个不同的问题:
首先,它应该是:
public static void main(String[] args){
第二,第4行的变量没有名称
do while语句的格式也不太正确
另一张海报上有一个很好的do while循环示例:
另外,检查分号应该放在哪里的规则。1.主函数签名
应该是
publicstaticvoidmain(字符串参数[])
不是
publicstaticmain无效(字符串参数[])
2.变量名不能以数字开头
int2=0;
你可能是说
inti=0;
3.do{…}while(…);
do while循环的格式为
do{
某物();
}while(条件);
4.分号表示语句的结尾
while(条件){
某物();
}
在这种情况下,something()
不在while循环中
5.注意if
if(flag=true)
这是将标志
分配给真
。并且该条件始终为真(因为分配的结果为真)
6.非System.out.prinln
它是System.out.println
。使用IDE
最终解决方案
公共类素数{
公共静态void main(字符串参数[]){
int num=3;
int i=2;
布尔标志=假;
做{
如果(num%i==0){
flag=true;
打破
}
i++;
}而(i
我还修复了一些逻辑问题,例如
您可能应该增加i
,而不是num
while(i
而不是while(如果(flag=true)if中有两个bug;
1)您正在>>分配要在此处提出一个好问题,请指定发生了您不期望的事情或没有发生您确实期望的事情。说出您自己做了什么来尝试解决它。您更有可能得到答案,并且在很多情况下都会自己解决。如果您确实发布了一个问题并得到了答案,请向上投票是有帮助的,请勾选其中一个作为“最早的最佳”答案。其他错误表明代码甚至无法编译。并且您已硬连线n
为一。根据定义,一不是质数。不相关,但正确的格式使代码更易于阅读和思考。请编辑问题以正确缩进您的代码.如果你不付出一点努力,你希望人们如何自愿帮助你?
public class Primes {
public static void main(String args[]) {
int num = 3;
int i = 2;
boolean flag = false;
do {
if (num % i == 0) {
flag = true;
break;
}
i++;
} while (i < num);
if (!flag) {
System.out.println(num + " is a prime number ");
} else {
System.out.println(num + " is not a prime number ");
}
}
}