我想生成一个数字序列,其中:我想通过以下方式计算序列中的下一个数字:(如果数字是偶数,则将其除以2)和(如果数字是奇数,则将其乘以3并加1)。


我正在使用ASCIIPrompter,输入的起始号码是29。

最终显示应按顺序重复显示数字,并根据上述猜想生成下一个数字。我的代码的问题是“ num =偶数”给我一个错误,我不知道如何解决此错误。非常感谢您的帮助。

import java.awt.*; // for Color class
import static BasicIO.Formats.*; // for getCurrencyInstance, etc.
import static java.lang.Math.*; // for math constants and functions & random
import static java.awt.Color.*; // for Color constants (e.g. RED)

public class sequence {

    private ASCIIDisplayer display;
    private ASCIIPrompter prompt;

    public sequence() {

        display = new ASCIIDisplayer();
        prompt = new ASCIIPrompter();
        int num;
        prompt.setLabel("starting Number");
        num = prompt.readInt();
        for (int i = 1; i <= 5; i++) {
            if (num = even) {
                num = num / 2;
            } else {
                if (num = odd) {
                    num = num * 3 + 1;
                }
            }
            display.writeDouble(num);
        }
        display.close();
        prompt.close();

    }; // constructor

    public static void main(String[] args) {
        sequence c = new sequence();
    };
}

最佳答案

=是一项转让

if (num = even) {


那实际上分配了(undefined?)值甚至变量num。尝试以下方法:

 if (num % 2 == 0) {


如果可以简单地使用} else {而不是单独检查奇数-整数没有第三种情况。

关于java - 与ASCII Displayer有关的Dr.Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34148952/

10-09 16:38