五一假期前夕30号晚的不归宿,1号的休息玩耍,让人身心都疲于学习,今天也是在家搞卫生的一天哦,还放了琳琳飞机,内疚疚。
广东总冠军!!! 第十一冠、广东又搞掂!
继续加油!
加法:
public static void main(String[] args) { int sum = add(1, 2); //实际参数 System.out.println(sum); } public static int add(int a,int b){ //形式参数 return a+b; }
比大小:
public static void main(String[] args) { int a = max(1, 2); System.out.println(a); } public static int max(int num1,int num2){ if(num1==num2) { System.out.println("相等"); return 0;//遇到 return,终止方法 } int result = 0; if (num1>num2){ result = num1; }else{ result =num2; } return result; }
对象名.方法名(实参列表)
int larger = max(30,40);
System.out.println("我是泳琳的碧咸");
public static int max(int num1,int num2){ if(num1==num2) { System.out.println("相等"); return 0; } int result = 0; if (num1>num2){ result = num1; }else{ result =num2; }return result; } public static double max(double num1,double num2){ if(num1==num2) { System.out.println("相等"); return 0; } double result = 0; if (num1>num2){ result = num1; }else{ result =num2; }return result; } public static int max(int num1,int num2,int num3){ if(num1==num2) { System.out.println("相等"); return 0; } int result = 0; if (num1>num2){ result = num1; }else{ result =num2; }return result; }
有时希望运行一个程序时候再传递给它信息,这要靠传递命令行参数给main()函数实现。
public class Demo03 { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { //数组长度 System.out.println("args["+i+"]:"+args[i]); } } }
①从文件夹打开命令窗口:
②然后进行编译得到class文件:
③不能直接执行,不然出现以下结果
④因为有packag,需要退到src执行,要写上包名。编译的时候不用这种操作,直接文件夹里编译。
⑤执行中,等待传递参数
传参,(也可能直接命令窗口输入命令行传参执行?有待探究)
public static void main(String[] args) { //调用可变参数的方法 printMax(1,2,3,4,5,6,7.0);//传递可变参数 printMax(new double[]{1,4,6,547,8,99.0});//传递一个数组 } public static void printMax(double...numbers){ if (numbers.length==0){ System.out.println("No argument passed"); return; } double result =numbers[0]; //排序! for (int i = 1; i < numbers.length; i++) { if (numbers[i]>result){ result = numbers[i]; } } System.out.println("The max value is "+ result); }
递归就是方法自己调用自己
利用递归可以用简单的程序来解决一些复杂的问题,通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。
递归结构包括两个部分:
public static void main(String[] args) { System.out.println(f(5)); } //阶乘 public static int f(int n){ if(n==1){ return 1; }else { return n*f(n-1); } }
递归思维:
Java使用栈机制,所以在深度大的时候,实用性不好,能不用就不用,用其他方法。使用递归的前提是基数小。
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入第一个数据"); double a = scanner.nextDouble(); System.out.println("请输入运算类型:+、-、*、/"); String c =scanner.next(); System.out.println("请输入第二个数据"); double b = scanner.nextDouble(); switch (c){ case"+": System.out.println(a+c+b+"="+(a+b)); break; case"-": System.out.println(a+c+b+"="+(a-b)); break; case"*": System.out.println(a+c+b+"="+(a*b)); break; case"/": System.out.println(a+c+b+"="+(a/b)); break; default: System.out.println("运算符输入有误!"); break; } scanner.close(); }
可以优化的地方:
参考
import java.util.Scanner; /** * @author FunnyTime */ public class Calculator { //定义main方法,main方法尽量简洁 public static void main(String[] args) { //引用calculator方法 calculator(); } //开始用Scanner写计算器的方法 public static void calculator(){ Scanner scan = new Scanner(System.in); System.out.println("请输入第一个数字:"); double a = scan.nextDouble(); System.out.println("请输入运算符:"); String c = scan.next(); System.out.println("请输入第二个数字:"); double b = scan.nextDouble(); switch(c){ case "+": double addresult = add(a, b); System.out.println(a+"+"+b+"="+addresult); break; case "-": double subtractresult = subtract(a, b); System.out.println(a+"-"+b+"="+subtractresult); break; case "*": double multiplyresult = multiply(a, b); System.out.println(a+"*"+b+"="+multiplyresult); break; case "/": double devideresult = devide(a, b); System.out.println(a+"/"+b+"="+devideresult); break; default: System.out.println("请按要求输入+-*/"); break; } scan.close(); } public static double add(double a, double b){ return a + b; } public static double subtract(double a, double b){ return a - b; } public static double multiply(double a, double b){ return a * b; } public static double devide(double a, double b){ if(b==0){ System.out.println("除数不能为0"); return 0; } return a / b; } }