在这个倍数中,我做错了什么?

时间:2015-04-07 14:54:48

标签: java

/**
 * A program that will prompt the user to enter a number and

 * then print out all the multiples of that number that are less than 1000.
 * 
 */


import java.io.*;

import java.util.Scanner; 
import java.text.*;

public class Unit3_Lesson5_1

{

static Scanner in = new Scanner(System.in); 

public static void main() {

    Scanner scanner = new Scanner(System.in);   

    DecimalFormat mf = new DecimalFormat("'$'0.00");    
    DecimalFormat df = new DecimalFormat("#.###"); 


int i, sum, num;
String start;

System.out.println("Hit Enter to begin!");

start = scanner.nextLine();

System.out.println("Enter a number that you want the multiples of");

num = in.nextInt();

sum = 0;
while (sum < 1000)


    for (i=1; i <= 100; i++)
    {
     sum = num * i;
     System.out.println(sum);
    }

我正试图让这个程序工作,但它一直给我所有的倍数,包括超过1000的时候,我希望它不会超过1000.我做错了什么?我需要使用While循环。

6 个答案:

答案 0 :(得分:1)

在一个中有2个循环,在这种情况下不需要。因此,只需使用一个循环即可实现此目的:

如果您想使用for循环

  

注意:条件是在增加sum变量时检查i值。

for (i=1; sum <= 1000; i++)
{
 sum = num * i;
 System.out.println(sum);
}

或者如果您想使用do-while循环

  

注意:您必须在循环之前声明i计数器,以便增加变量。

int i = 0;

while (sum < 1000) {
   sum = num * i;
   i ++;
}

答案 1 :(得分:0)

你没有检查总和是否&lt;在for循环中1000,因此它将非常快速地射击1000,并且不会停止直到for循环结束。你应该删除for循环,只需在while循环中增加i。

答案 2 :(得分:0)

只需使用一个带有和条件的循环:

for (i=1; i <= 100 && sum < 1000; i++) {
    sum = num * i;
    System.out.println(sum);
}

答案 3 :(得分:0)

而不是(总和<1000)你应该(总和&lt;(100 * num))。

答案 4 :(得分:0)

取走你的while循环并在你的for循环中使用System.exit(0)放置一个if语句;

for (i=1; i <= 100; i++)
{
 sum = num * i;
 if(sum>1000){
 System.exit(0);
 }
 System.out.println(sum);
}

答案 5 :(得分:0)

您的程序将运行&#34; for&#34;循环(并不重要&#34;总和&#34;)然后回到&#34;而#34;块。删除&#39; for&#39;循环和增量&#34; i&#34; while块的每次迭代。 希望这有帮助!