【问题标题】:Really simple Java code not working [duplicate]非常简单的Java代码不起作用[重复]
【发布时间】:2016-10-09 13:10:13
【问题描述】:

我是编程的绝对初学者,我从 java 开始。我写了这段代码,我只是不知道它有什么问题。

public class multiples3and5 {

    public static void main(String[] args) {
        for (int mult3 = 0; mult3 < 1000; mult3 += 3);
            System.out.println(mult3);
    }
}

我的终端上不断收到此错误:

multiples3and5.java:7: error: cannot find symbol

System.out.println(mult3);
                   ^
symbol:   variable mult3
location: class multiples3and5

1 error

【问题讨论】:

标签: java variables


【解决方案1】:

这仅仅是因为您在 for 循环之后使用了分号。分号将结束 for 循环的执行,并且由于您的变量 mult3 在此 for 循环之外,因此 Sopln 语句不知道该声明

去掉分号

 for (int mult3 = 0; mult3 < 1000; mult3 += 3)

【讨论】:

    【解决方案2】:

    您的第 5 行是错误的。 试试这样..

    for (int mult3 = 0; mult3 < 1000; mult3 += 3)
    

    删除最后一个分号。如果你把它放在你的 mult3 是本地的并且无法访问范围之外。

    如果您想找到 3 的倍数之和(如 cmets 中所述) 这很简单。 声明一个变量,将其初始化为 0,并在每次迭代时添加循环变量。

    int sum=0;
    for (int mult3 = 0; mult3 < 1000; mult3 += 3)
    {
      sum+=mult3;
    }
    System.out.println(sum);
    

    就是这样。

    【讨论】:

    • 谢谢,我现在明白了。
    • 我能问一下为什么 += 在 java 中是必需的吗?在两个 for 循环中
    • 和'sum+=mult3;'什么
    • 因为如果您执行 'mult3+3',您只是将 3 添加到 mult3,而不是为您的变量分配新的计算值。 mult3+=3 就像 'mult3=mult3+3' 看到两者是不同的。
    【解决方案3】:

    您没有正确启动代码块。在for 循环声明的末尾,您放置一个分号而不是左大括号{。没有代码,这只是循环并从作用域中删除了 mult3 变量,因为它是为循环声明的。

    这是解决方法:

    public class multiples3and5 {
        public static void main(String[] args){
            for(int mult3 = 0; mult3 < 1000; mult3 += 3){
                System.out.println(mult3);
            }
        }
    }
    

    【讨论】:

    • 这行得通,谢谢伙计。我仍然在掌握它。你知道我怎么能找到所有 3 的倍数(0 到 1000 之间)的总和吗?这就是我最终想要做的。
    • @Physco111 只需使用您的代码,但创建一些其他变量(循环外),每次迭代添加mult3,然后在循环后将其打印出来。
    猜你喜欢
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    相关资源
    最近更新 更多