Java -day3
四 方法
4.4命令行传递参数
main方法也可以传递参数 通过cmd 命令提示符运行 先编译 注意包的位置(回退)
1 2 3 4 5 6 7 | public class Demo03 { public static void main(String[] args) { for ( int i = 0 ; i < args.length; i++) { System.out.println(args[i]); } } } |
4.5 可变参数(不定项)
int。。。 i 只能在最后面
public class Demo04 { public static void main(String[] args) { Demo04 demo04 = new Demo04(); demo04.test(1,3,4,5,6); } public static void test(int... i) { System.out.println(i[0]); System.out.println(i[1]); System.out.println(i[2]); System.out.println(i[3]); } }
public class Demo05 { public static void main(String[] args) { printMax(1,32,44,3,666); } public static void printMax(double... numbers){ if (numbers.length == 0){ System.out.println("没有值传进来"); return; } int i = 0; double result = numbers[0]; for (i = 1; i < numbers.length; i++) { if (result < numbers[i]){ result = numbers[i]; } } System.out.println("数组中最大值是第" + i +"个" + result); }
4.6 递归
递归深度越大 占用空间越多
public static void main(String[] args) { System.out.println(f(3)); } public static int f(int n){ if (n == 1) { return 1; //递归头 }else { return n * f(n-1); //递归体 } }
4.7 作业 计算器
加减乘除 循环接收 用户交互
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("1:加法 2:剑法 3:惩罚 4:除法"); System.out.println("请输入要执行的操作"); while (scanner.hasNext()){ int x = scanner.nextInt(); System.out.println("请输入两个数"); double a = scanner.nextDouble(); double b = scanner.nextDouble(); switch (x){ case 1: System.out.println(add(a,b)); break; case 2: System.out.println(jian(a,b)); break; case 3: System.out.println(cheng(a,b)); break; case 4: System.out.println(chu(a,b)); break; default: System.out.println("小猫咪不知道哦"); } System.out.println("请输入要执行的操作"); } } public static double add(double a,double b){ return a+b; } public static double jian(double a,double b){ return a-b; } public static double cheng(double a,double b){ return a*b; } public static double chu(double a,double b){ return a/b; }
add sub multiply div
五 数组
5.1 什么是数组
5.2 数组的声明和创建
public class ArrayDemo01 { public static void main(String[] args) { int[] nums; //定义 声明 // int num2[]; nums = new int[10]; //创建 //联合起来 int[] nums2 = new int[10]; //int一个数组类型 new给了10个数组空间 nums2[0] = 1; //默认值为0 nums2[1] = 2; nums2[2] = 3; nums2[3] = 4; nums2[4] = 5; nums2[5] = 6; nums2[6] = 7; nums2[7] = 8; nums2[8] = 9; nums2[9] = 10; //计算所有元素的和 int sum = 0; for (int i = 0; i < nums2.length; i++) { sum+=nums2[i]; } System.out.println(sum); }
5.3 初始化 内存分析
public static void main(String[] args) { int[] a = {1,2,3,4,5}; //静态初始化 创建赋值 一旦创建不可改变 int[] b = new int[10]; //动态初始化 包含默认初始化0 b[1] = 3; }
5.4下标越界
数组的特点
5.5 数组的使用
public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; for (int i = 0; i < arrays.length; i++) { System.out.println(arrays[i]); } System.out.println("----------------"); int sum = 0; for (int i = 0; i < arrays.length; i++) { sum += arrays[i]; } System.out.println(sum); System.out.println("----------------"); int max = arrays[0]; for (int i = 1; i < arrays.length; i++) { if (arrays[i] > max){ max = arrays[i]; } } System.out.println(max); }
public class ArrayDemo04 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; //没有下标 for (int array : arrays) { System.out.println(array); } printArray(arrays); int[] reverse = reverse(arrays); printArray(reverse); } //打印 public static void printArray(int[] arrays){ for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i] + " "); } System.out.println(); } //反转 public static int[] reverse(int[] array){ int[] result = new int[array.length]; int j = array.length -1; for (int i = 0; i < array.length; i++) { result[j] = array[i]; j--; } return result; } }
5.6 二维数组
public static void main(String[] args) { int[][] array = {{1,2},{3,4},{5,6}}; System.out.println(array[0][1]); //2 System.out.println(array.length); //3 System.out.println(array[1].length); //2 for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.println(array[i][j]); } } }
5.7 arrays类
public static void main(String[] args) { int[] a = {1,2,3,4,90909,6464,564,21,2}; System.out.println(a); //[I@1b6d3586 System.out.println(Arrays.toString(a)); //[1, 2, 3, 4, 90909, 6464, 564, 21, 2] Arrays.sort(a); //排序输出 System.out.println(Arrays.toString(a)); //[1, 2, 2, 3, 4, 21, 564, 6464, 90909] }
5.8 冒泡排序
public static void main(String[] args) { int[] a = {9,8,7,6,5,4,3,2,1,0}; int temp = a[0]; for (int i = 0; i < a.length-1 ; i++) { for (int j = 0; j < a.length - i -1; j++) { if (a[j]>a[j+1]){ temp = a[j+1]; a[j+1] = a[j]; a[j] = temp; } } } System.out.println(Arrays.toString(a)); }
5.9 稀疏数组
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人