命令行传参
有时候你希望运行一个程序的时候再传递给他消息,这要靠传递命令行参数给main()函数实现。
package operator;
public class demo{
public static void main(String[] args) {
for(int i=0;i< args.length;i++){
System.out.println("args["+i+"]:"+args[i]);
}
}
}
实现方法:
- 在该java文件夹下,运行cmd
- 通过命令行javac编译该java文件后用java命令运行,发现报错
- 发现原因是demo.java文件中包含package operator其所在包的文件夹在src,所以应该在src文件夹下运行该文件
4.运行成功,输出结果为:
args[0]:hello
args[1]:world!
可变参数(不定项参数)
- JDK1.5开始,Java支持传递同类型的可变参数给一个方法
- 在方法声明中,在指定参数类型后加一个省略号(…)
- 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明
以下为输出一串数中最大数的例子:
public class demo{
public static void main(String[] args) {
printMax(1,2,3,4,5);
}
public static void printMax(int... numbers){
if(numbers.length==0)
return;
double result = numbers[0];
for (int i=1;i< numbers.length;i++) {
if (result<numbers[i])
result = numbers[i];
}
System.out.println("最大值为:"+result);//输出结果为5.0
}
}
递归
递归结构包括两个部分:
- 递归头:什么时候不调用自身方法
- 递归体:什么时候需要调用自身方法
以下为递归调用实现5的阶乘:
public class demo{
public static void main(String[] args) {
System.out.println(f(5));//输出结果为120
}
public static int f(int n){
if(n==1)
return 1;
else return n*f(n-1);
}
}
递归原理: