显示#的1 - 1000不能被13整除吗?在Java中

时间:2013-09-19 22:03:08

标签: java equation-solving operands

我正在为我的编程简介课做一些功课,其中一个问题是

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

当然,它完美无缺。

我应该写的程序与本书中给出的例子并不完全相同,但它的原理是相同的,而且我已经玩了一段时间并且似乎无法识别问题。

我确信这是一个非常简单的问题,答案更简单,但我是一个新的编程,我有点迷失。

有什么想法吗?

2 个答案:

答案 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号停止。