我编写了这个简单的程序,它接受一个命令行参数,将其转换为 int 类型,并在控制台上打印从该数字开始直到无穷大的整数。
如果我不传递任何参数,则会打印我的异常消息。
public class Infinity
{
public static void main(String args[])
{
try
{
n=Integer.parseInt(args[0]);
while(true)
{
System.out.println(n);
n++;
}
}
catch(Exception ex)
{
System.out.println("A number was not entered.");
}
}
}
如果我不传递任何参数,程序本身会为“n”分配一个值吗?像这样:
n=Integer.parseInt(args[0]);
if(args[0]==NULL)
{
n=0;
}
您可以默认将 n
的值指定为 0
或任何其他值,并使用 if(args.length > 0) {
检查是否给出了任何参数。以下是带有注释的完整示例:
public class Infinity {
public static void main(String args[]) {
/*
Start by assigning your default value to n, here it is 0
If valid argument is not given, your program runs
starting from this value
*/
int n = 0;
// If any arguments given, we try to parse it
if(args.length > 0) {
try {
n = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.err.println("Argument" + args[0] + " must be an integer.");
// Program ends
System.exit(1);
}
}
// All good, n is either default (0) or user entered value
while(true) {
System.out.println(n);
n++;
}
}
}
注意:对于不太熟悉java的用户,可以通过以下方式运行此程序:
- 将其保存到
Infinity.java
- 通过 cmd 或终端编译:
javac Infinity.java
- 使用以下命令执行:
java Infinity
或 java Infinity 1000
(或任何其他值)
干杯。
我是一名优秀的程序员,十分优秀!