我对编程还很陌生,我正在努力弄清楚循环。我设法使一段代码正常工作,但是我仍然没有完全了解它是如何工作的。我在网上找到了一个类似程序的代码,该代码是使用for循环编写的,我设法使其作为while循环工作(花了我几天的时间!)。我试图了解内循环在做什么。
我知道外部循环正在检查循环的每次迭代x小于100。为什么需要在循环中嵌套y变量,为什么将其设置为2,为什么每次需要将其递增1?另外,有没有一种方法可以不使用break;吗?
我在这里看到了这种程序的其他一些示例,但是我希望有人可以阐明这种程序的具体工作方式。
提前感谢!
class PrimeNumbers {
public static void main(String args[]) {
int x = 2;
while (x <= 100) {
int y = 2;
while (y <= x) {
if (x == y) {
System.out.println(x);
}
if (x % y == 0) {
break;
}
y++;
}
x++;
}
}
}
我对编程还很陌生,我正在努力弄清楚循环。我设法使一段代码正常工作,但是我仍然没有完全了解它是如何工作的。我找到了类似的代码...
为什么需要在循环中嵌套y变量,为什么将其设置为2,为什么每次需要将其递增1?
评论是您的朋友:
变量x
将所有数字从2迭代到100。在此循环内,您将处理一些内容,以确定x是否为质数。您的代码要做的事情是迭代从2到x的所有数字,并尝试将x除以每个数字。变量y
是第二个数字。
如您所见,您的第一个循环正在检查x是否小于100。然后您的下一个循环将所有小于x的数字相除,如果有一些小于x且具有0 mod的数字,则为不是素数。例如,我们的x = 5在第一次迭代中y = 2,5%%2 = 1,因为mod不为零,所以不可能进行除法,然后y递增1,5%3 = 2 mod又是2不可分割,依此类推,您将y递增到5,这意味着您可以将x = 5为质数除以x来得到较小的整数。如果您不了解发生了什么,请尝试打印所有内容。
要知道数字是否为质数,只有当数字(x)在他本人或1之间进行除法时,余数才会为零。
print('Prime数字在1到100之间是:')