抱歉发了“修复我的代码”的帖子
编辑:与for
循环的语法比质数更相关,现在也解决了。
我的任务是从控制台取一个整数,并打印出(在不同的行上)从1到n的所有素数。我的方法从n开始,检查它的素数,然后将n递增1,并循环直到n=2。为了检查一个数字是否是素数,我运行一个循环,检查跳水的余数x等于零,x从2开始,停止在根(n)。现在这一切在理论上都是可行的,阅读我的代码,我看不出哪里出错了。
public class Prime {
public static boolean isPrime(int n) {
boolean result = true;
for (int x = 2; x>=sqrt(n); x++) {
if ((n % x) == 0) {
result = false;
break;
} else {
x++;
}
}
return result;
}
public static void main(String[] args) {
Scanner intIn = new Scanner(System.in);
int i = intIn.nextInt();
while (i>=2) {
if (isPrime(i)) {
System.out.println(i);
i--;
} else {
i--;
}
}
}
}
例如,输入10将返回10(连同9,8,7,6,5,3),即使isPrime()检查10%2==0,然后将结果
设置为false。我在这里错过了什么??
我再次为这个烦人的(有点重复的)问题道歉。
在循环中,x必须小于或等于,因此更改(int x=2;x)的表达式
将x增加两次,循环的条件应该是x
for (int x = 2; x>=sqrt(n); x++) { // here
if ((n % x) == 0) {
result = false;
break;
} else {
x++; // and here
}
}
正确的逻辑应该是:
public static boolean isPrime(int n) {
for (int x = 2; x<=sqrt(n); x++) {
if ((n % x) == 0) {
return false;
}
}
return true;
}
for
循环中的条件是继续循环的条件,而不是停止循环的条件。您需要更换
for (int x = 2; x<=sqrt(n); x++) {
// Here -----^
我有一个名为< code>Person的对象。 它有几个属性; 我设置了一个person对象,比如< code>Person p = new Person(1,“Joe”);。 1.) 我需要检查对象是否为空;以下表达式是否正确; 2.)我需要知道ID是否包含Int。 但是,java不允许这样做。我该怎么办?
问题内容: 我有一个名为的对象。 它具有几个属性; 我将一个人对象设置为。 1.)我需要检查对象是否不为null;以下表达式正确吗? 2.)我需要知道ID是否包含一个Int。 但是,java不允许这样做。我该如何检查? 问题答案: An 不为null,如果未初始化,则可能为null 。 如果您希望整数可以为null,则需要使用代替。 此外该语句不能为真,因为如果为null,则将抛出a。所以正确的表
问题内容: 基本上,我的同伴一直在说,我可以使用另一种检查int数组是否包含int的方法来缩短代码,尽管他不会告诉我它是什么:P。 当前: 也尝试过此方法,尽管由于某种原因它总是返回false。 有人可以帮我吗? 谢谢。 问题答案: 这是Java 8解决方案
基本上,我的朋友一直在说,我可以通过使用不同的方法来检查int数组是否包含int来缩短我的代码,尽管他不会告诉我它是什么:p。 当前: 也试过了,尽管由于某种原因它总是返回false。 有人能帮帮我吗? 谢谢你。
我正试图在android中创建一个干净的复选框代码,但如果我只是按下按钮而没有选中复选框,则会出错这是清理复选框的代码: 这是我在重置按钮上输入的代码 该复选框是一个声明: 显然,如果未选中复选框并出现错误,tem.getItemId为null。 注:如果你不知道答案或不明白,最好询问或继续,然后投否决票。让其他有帮助的人看到这个问题