Java 数码规则生成器不工作

Java Number Sequence Generator Not Working

提问人:user2057847 提问时间:2/23/2013 更新时间:2/23/2013 访问量:371

问:

我正在编写的这段代码有问题。该代码的目的是为数字序列制定修饰符,然后给出该序列中的前 10 个数字。但是,我的循环机制似乎有问题,因为它在应该只执行 10 个值时打印出无限数量的值。我计划将除法和幂函数包含在代码中,但遇到了这个问题。

import java.util.Scanner;

public class PatternCreator {

public static void main(String[] args) {
    Scanner s = new Scanner(System.in);
    System.out
            .println("Please enter the starting value of the number sequence.");
    double sequence = s.nextInt();
    System.out
            .println("Please enter the addition/subtraction modifier; e.g. 2,-2.");
    double addsub = s.nextInt();
    System.out
            .println("Please enter the multiplication modifier; 0 for none.");
    double mult = s.nextInt();
    System.out.println("Please enter the division modifier; 0 for none.");
    double divi = s.nextInt();
    System.out
            .println("Please enter the exponential modifier; 0 for none.");
    double power = s.nextInt();

    double addonly = sequence + addsub;

    while (mult == 0 && divi == 0 && power == 0) {
        for (int count1 = 1; count1 <= 10; count1++) {
            if (count1 == 1) {
                System.out.print(sequence + " ");
            } else {
                System.out.print(addonly + " ");
                addonly = addonly + addsub;
            }
        }
    }

    double multadd = sequence + addsub * mult;

    while (mult != 0 && divi == 0 && power == 0) {
        for (int count2 = 1; count2 <= 10; count2++) {
            if (count2 == 1) {
                System.out.print(sequence + " ");
            } else {
                System.out.print(multadd + " ");
                multadd += multadd;
            }
        }
    }

}

}
Java 数字 序列

评论


答:

0赞 Colleen 2/23/2013 #1

听起来像 、 和 都是 0,而且你永远不会改变它们——因此你正在执行你的循环(因此你的循环)无限次。multdivipowerwhilefor

为什么你有那个 while 循环在那里?

评论

0赞 Florian Minges 2/23/2013
while循环可能应该改为if子句?
0赞 Colleen 2/23/2013
@FlorianMinges 我真的不知道 OP 要做什么——你不想无论如何打印序列吗?
0赞 user2057847 2/23/2013
我的印象是 system.in 将用户输入分配给这些变量?
0赞 Florian Minges 2/23/2013
System.out 只是将参数打印到控制台。
0赞 Colleen 2/23/2013
@user2057847确实如此——我假设出于测试目的(正如您所说,此代码不完整),您为所有 3 个代码输入了 0。这不是真的吗?如果没有,请准确发布您正在使用的测试值。
0赞 Marco Antonio Monroy Conde 2/23/2013 #2

你永远不会改变多重、二分或幂的值。如果这些值永远不会改变,你预计这段时间将如何结束?