用“While”循环纠正问题

时间:2015-08-01 11:20:01

标签: java

我刚开始使用while循环,现在我正在努力使用代码。我必须要求用户输入while循环的起始值和结束值。结果应显示起始值和结束值之间的所有4的倍数。这是作业,因此必须包含while循环。

例如,用户输入1作为起始值,4输入结束值。代码应显示4 *起始值和结束值之间的值。我不知道如何使数字乘以4乘以。

{{1}}

5 个答案:

答案 0 :(得分:3)

我会给你两个提示:

  1. 4的第一个倍数大于或等于start?您的程序适用于start已经是4的倍数(例如32)而不是4的倍数的情况(例如29)。

  2. 你如何从4(例如32)到下一个(36)的特定倍数获得?

  3. 如果相反,您需要

      

    显示4 *起始值和结束值之间的值

    最简单的解决方案是:

    while (start <= end)
    {
        System.out.print((start * 4) + " ");
        start = start + 1;
    }
    

答案 1 :(得分:0)

要做到这一点,你需要%,它在分裂后返回休息。

这就是你可以做到的,有一个简单的循环解决方案,然后是while循环。

public static void main(String[] args) {
    int start = Integer.parseInt(JOptionPane.showInputDialog("Enter a starting number (integer)"));
    int end = Integer.parseInt(JOptionPane.showInputDialog("Enter an ending number (integer)"));

    for (int i = start; i < end; i++) {
        if (i % 4 == 0){
            System.out.print(i + " ");
        }
    }

    System.out.println("");

    int i = start + (4 - (start % 4));
    while (i < end){
        System.out.print(i + " ");
        i += 4;
    }
}

值2和63的输出:

4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 
4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 

答案 2 :(得分:0)

我建议使用mod运算符 - &gt; % 那会给你余数,如果它是0 - 你得到4的倍数。

示例:

if(start%4 == 0){
System.out.print (start); 
}
start++;

答案 3 :(得分:0)

由于您将start值更新为其4xtimes值,因此在while循环的下一次迭代中,将检查此新值,这是不正确的。不要更新while条件中使用的相同变量。使用另一个变量乘以4然后用它来显示。

修改 您需要使用增量运算符++来增加start值以达到end

另外,你的while循环应该是这样的:

int temp=0;
while (start < end)
{
temp = start * 4;
System.out.print (temp +  "  ");       
start++; 
}

更好的是:

while (start < end)
{
System.out.print ((start * 4) +  "  ");       
start++; 
}

@kittykittybangbang:感谢您推荐编辑。

答案 4 :(得分:0)

    import javax.swing.JOptionPane;

    public class WhileEx {

    public static void main(String[] args){ 

    int start = Integer.parseInt(JOptionPane.showInputDialog("Enter a     starting number (integer)")); 
    int end = Integer.parseInt(JOptionPane.showInputDialog("Enter an ending   number (integer)"));  
    if(start==0 || start%4>0)
    {
        start = start +(4-start%4);
    }
    while (start <= end)
    {
        System.out.print (start +  "  ");       
        start = start + 4;

    }
    }
    }