我正在为我的编程简介课做一些功课,其中一个问题是
编写一个程序,显示从1到1000的所有整数,这些整数不能被13整除。(提示:如果表达式x%13!= 0为真,则x不能被13整除。回想一下%是余数运算符。) 我的想法是,我希望程序要做的是取x,无论它是什么,如果它小于1000,然后除以13,如果余数不是0则显示数字。如果余数 0,则不显示该数字。
我的第一次尝试是以下,
public class Ch4_Lab_5
{
public static void main(String[] args)
{
int x = 1;
while (x < 1000)
{
System.out.println(x);
x++;
}
}
}
但是当它运行时它只是打印数字1到999。 我想也许这需要是一个if / else语句,但我不确定“else”参数是什么。
我的书以此为例:
public class Ch4_Example
{
public static void main(String[] args)
{
int x = 1;
while (x*x < 5000)
{
System.out.println(x + " squared = " + x*x);
x++;
}
}
}
当然,它完美无缺。
我应该写的程序与本书中给出的例子并不完全相同,但它的原理是相同的,而且我已经玩了一段时间并且似乎无法识别问题。
我确信这是一个非常简单的问题,答案更简单,但我是一个新的编程,我有点迷失。
有什么想法吗?
答案 0 :(得分:3)
你的节目缺少的是“不能被13整除的号码”。
请记住,当您编写if
语句时,只有在括号之间的表达式为真时才会执行其相应块中的任何内容。所以在你的while循环中,写一个if
语句,只打印出数字,如果它不能被13整除。就像这样:
while (x <= 1000) // notice the <= operator
{
if (/*change this multiline comment for an expression
that checks wheter x is not divisible by 13*/) {
System.out.println(x);
}
x++; // Increment x whether it is divisible or not.
}
我会写那里的实际表达,但后来我会为你回答你的作业。我只是希望你能掌握这个逻辑,这样你就可以自己回答你的作业 - 并将知识内化。可能这对你有用。
答案 1 :(得分:-2)
公共类Ch4_Lab_5 { public static void main(String [] args) { int x = 1;
while (x < 1000)
{
System.out.println(x);
System.out.println(x+1);
System.out.println(x+2);
System.out.println(x+3);
System.out.println(x+4);
System.out.println(x+5);
System.out.println(x+6);
System.out.println(x+7);
System.out.println(x+8);
System.out.println(x+9);
System.out.println(x+10);
System.out.println(x+11);
x+=13;
}
}
}
但仍有一些调整要做,以便在1000号停止。