用主方法计算到2个不同的值,并使用公共静态最后的 int

问题描述 投票:0回答:2

我现在正在做 "练习 "题,我被这道题卡住了:"假设你想写一个使用循环产生以下输出的程序,下面的程序是你的尝试,但它至少有四个主要错误。下面的程序是一个解决方案的尝试,但它至少包含四个主要错误。请找出并修复所有错误.1 3 5 7 9 11 13 15 17 19 21 1 3 5 7 9 11 "

public class BadNews {
    public static final int MAX_ODD = 21;

    public static void writeOdds() {
        // print each odd number
        for (int count = 1; count <= (MAX_ODD - 2); count++) {
            System.out.print(count + " ");
            count = count + 2;
        }

        // print the last odd number
        System.out.print(count + 2);
    }

    public static void main(String[] args) {
        // write all odds up to 21
        writeOdds();

        // now, write all odds up to 11
        MAX_ODD = 11;
        writeOdds();
    }
}

我把代码改成了。

public class BadNews {
    public static final int MAX_ODD = 21;

    public static void writeOdds() {
        // print each odd number
        for (int count = 1; count <= (MAX_ODD); count++) {
            System.out.print(count + " ");
            count = count +1; //tried to chacge count++ into count + 2 but it was a miss
        }
    }

    public static void main(String[] args) {
        // write all odds up to 21
        writeOdds();

        // now, write all odds up to 11
        MAX_ODD = 11;
        writeOdds();
    }
}

我以为最后一个问题是最终的int MAX_ODD应该被移到main里,然后改成 "正常 "变量(int MAX_ODD),但结果是问题失败,并评论说:"你的解决方案必须有一个类常量。一个常量必须在你的类中的任何方法之外声明为'public static final'。"有什么办法可以解决这个问题吗?

java loops int final
2个回答
0
投票

这个Code将为你提供预期的输出。

public static void main(String[] args) {
    writeOdds(21);
    writeOdds(11);
}

public static void writeOdds(int n) {
    // print each odd number
    for (int count = 1; count <= (n); count++) {
        System.out.print(count + " ");
        count = count +1; //tried to chacge count++ into count + 2 but it was a miss
    }
}

0
投票

一个被声明为final的属性,在其初始值被设置后,其值不能被改变。这个初始值是final。变量必须保持在类级,在任何方法之外,这样每个方法都可以访问它.因此,只需删除final这个词。

© www.soinside.com 2019 - 2024. All rights reserved.