2

我正在为我的编程入门课做一些作业,其中一个问题是

编写一个程序,显示从 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++;
            }
     }
}

当然,它工作得很好。

我应该编写的程序与书中给出的示例不太一样,但原理相同,我已经玩了一段时间了,似乎无法确定问题所在。

我确信这是一个非常简单的问题,答案更简单,但我对编程很陌生,我有点迷茫。

有任何想法吗?

4

2 回答 2

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.
}

我会在那里写下实际的表达,然后我会为你回答你的作业。我只是希望你能明白这件事的逻辑,这样你就可以自己回答你的作业——并将知识内化。可能这对你有用。

于 2013-09-19T22:08:03.537 回答
-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 位。

于 2013-09-19T22:11:41.950 回答