【问题标题】:Printing integers between 2 given integers [closed]打印2个给定整数之间的整数[关闭]
【发布时间】:2013-06-02 19:20:04
【问题描述】:

我正在尝试使用一种方法创建一个类,该方法可以打印任意两个给定整数之间的所有整数。这就是我现在得到的-

public class IntList {
public static void main(String[] args) {
int start = Integer.parseInt(args[0]);
int stop = Integer.parseInt(args[1]);
for (int i = start + 1; i < stop; i++) {
System.out.print(i);
}
}

}

这不会编译,我收到 2 个错误,提示“解析时到达文件末尾”,第 4 行和第 5 行各一次。

【问题讨论】:

  • 好的。还有什么问题?
  • System.out.print(i);在同一行打印,但 printf 添加了换行符。

标签: java for-loop integer


【解决方案1】:

错误的main() 方法声明。你必须传递一个数组作为这个函数的唯一参数。

然后将您的 startstop 变量声明为本地变量,并在 main 方法本身内完成这项工作,或者创建一个您从 main() 调用的新函数方法。

无需更多解释,这是 Java 基础知识。您应该阅读 Java 课程。

【讨论】:

    【解决方案2】:

    这段代码有两个问题

    • 主要方法没有正确的签名

    让主要喜欢

    public static void main(String ar[]){
    }
    

    并创建另一个静态方法来接受两个 int 变量

    • 重复的局部变量声明

    删除

    int i;
    

    您已经声明并初始化为 for 循环的一部分

    它会给你duplicate local variable错误

    【讨论】:

    • 外部变量被局部循环变量 i 遮蔽。那个阴影变量需要 this.i 吗?
    • @hus 它会给你重复的局部变量错误
    • 谢谢,删除了我——它仍然无法编译,不知道为什么,说一下 if start?
    • 查看更新的答案,主要方法没有正确声明它应该接受String[] ar而不是两个int
    【解决方案3】:

    您的main 方法声明不正确。 Java 应用程序的main 方法中的参数列表必须是String 数组。删除变量i的重复声明后,从String数组的前2个值中读取startstop值:

    public static void main(String[] args) {
    
        int start = Integer.parseInt(args[0]);
        int stop = Integer.parseInt(args[1]);
        for (int i = start + 1; i < stop; i++) {
            System.out.print(i);
        }
    }
    

    不要忘记将 startstop 值传递给应用程序

    java IntList 1 10
    

    【讨论】:

    • 谢谢,您的回答似乎应该完全符合我的要求,但由于某种原因它仍然无法编译。我正在使用 vim 和我的 String[],Integer。和系统。不是不同的颜色 - 我是否可能需要导入我缺少的东西?
    • 您使用的所有内容都来自java.lang,无需导入任何内容。你看到什么错误?更新您的问题...
    【解决方案4】:

    你的班级需要public static void main(String[]) 才能执行它。

    import java.util.Random;
    public class IntList {
        public static void main(int start, int stop){
            for (int i = start + 1; i < stop; i++) {
            System.out.print(i);
            }
        }
        public static void main(String args[]){
            main(random.nextInt(20),random.nextInt(100));
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      • 2022-06-10
      相关资源
      最近更新 更多