我正在阅读 Sams 24小时内自学Java 并且遇到了这段代码:
class NewRoot {
public static void main(String[] args) {
int number = 100;
if (args.length > 0) {
number = Integer.parseInt(args[0]);
}
System.out.println(“The square root of “
+ number
+ " is "
+ Math.sqrt(number));
}
}
但为了编译代码,编写者在
的Arguments字段中输入169
运行>设置项目配置>自定义
菜单(在NetBeans IDE中)。
所以我的问题是:具体领域的目的是什么? 169意味着什么,还是只是一个随机数?遗憾的是作家没有对此发表任何意见!
答案 0 :(得分:1)
作者给出了一个运行程序的示例,该程序包含通过终端给出的参数。这通常通过运行代码
在终端或命令提示符中完成javac ProgramName.java
java ProgramName <arguments>
由于您在Netbeans中编写和运行程序,并且不使用终端,因此可以配置为使用给定的命令行参数运行项目。这就是你在netbeans菜单中所做的。
字符串“169”仅对给定程序有意义。作者试图演示如何在给定命令行参数的情况下运行程序,在这种情况下,他将其设置为任意值“169”。 在您的代码中,您将获取此String并将其转换为int。
答案 1 :(得分:1)
数字169几乎肯定是毫无意义和随意的;它只是作为一个例子使用。现在让我们逐行打破代码,以解决您的问题。
args包含任何命令行参数作为字符串数组:
public static void main(String[] args) {
作者声明了int
类型的变量,并将其称为number
。他将初始值指定为100.这似乎是一个随机选择的数字来演示这个概念 - 编程书籍的常用方法。
int number = 100;
然后,他检查是否提供了任何命令行参数;如果有,args.length将大于零:
if (args.length > 0)
如果存在命令行参数,则会将第一个参数解析为number
变量(如果提供非数字的第一个参数,此操作可能会失败):
{
number = Integer.parseInt(args[0]);
}
请注意,如果存在 no 命令行参数,则number
不会被覆盖。因此,在没有命令行参数的情况下调用程序,它将显示100的平方根。使用169的参数调用它(当然是从空中挑选另一个数字),它将显示169的平方根。
命令行参数将打包到args
;程序启动后从按键等输入不会。