/**
* 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循环。
答案 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块的每次迭代。 希望这有帮助!