命令行参数与输入 - 有什么区别?

Command Line Arguments vs Input - What's the Difference?

提问人:motyzk 提问时间:12/1/2018 最后编辑:motyzk 更新时间:3/2/2019 访问量:3017

问:

命令行参数和输入有什么区别?

给定一些程序正在运行:

$ java JavaProgram 4 5
Hi! give me some input!
6
now give me some more input!
7

在此示例中,4 5 是命令行参数,6 7 是输入。

命令行参数和输入似乎都提供了相同的功能,即从用户那里获取一些不同的数据。我们需要两者做什么?

与 Java 语言无关

评论


答:

3赞 motyzk 12/1/2018 #1

命令行参数和输入是两个不同的东西。

在运行之前,将命令行参数提供给正在运行的应用程序。让我们看一个例子:

$ java JavaProgram 30 91

首先,我们给应用程序提供命令行参数,然后我们才点击并运行它作为 Java 程序。JavaProgram3091Enter

意义:

  1. 命令行参数是应用程序特定调用的一部分。(我们可以在运行它的其他时候给它其他命令行参数)
  2. 命令行参数在程序开始运行之前提供给程序。

与此相反,可以在应用程序运行期间向应用程序提供输入,因为它只能在开始运行后请求输入。 出于这个原因,我们可以在请求输入之前向用户打印一些文本,指示我们期望的输入等。

但是我们不能使用命令行参数来做到这一点,因为一个没有运行的应用程序 - 不能做任何事情,特别是不能向用户打印消息。

命令行参数只接受一次 - 零个、三个、九十个或任意数量的命令行参数。(实际上这个数字是有限制的,但它非常大且无关紧要)

输入可以任意次数。 因此,输入可以是交互式的 - 系统可以接受输入,然后根据它做出响应,然后接受更多的输入,等等。 命令行参数只使用一次,因此不能用于管理任何交互性。

综上所述,将“命令行参数和输入之间有什么区别?”的对话缩小到非常具体的情况,在这些情况下,我们希望接受一次输入,并且不希望在此之前打印任何内容。即使在这种情况下,在程序开始运行之前仍然会给出命令行参数,与程序开始运行后给出的输入相比。