习日志day03
Switch多选择结构
switcj(expression){
case value:
//语句
break; //可选
default: //可选
//语句
}
While 循环
while(布尔表达式){
//循环内容
}
do while 循环
do{
//代码语句
}while(布尔表达式);
for 循环
for(初始值;布尔表达式;更新){
//代码语句
}
增强for循环
for(声明语句:表达式){
//代码句子
}
-
声明语句:声明新的局部变量,该变量的类型必须和数组的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等。
-
表达式:表达式要是访问的数组名,或者是返回数组的方法。
-
例子
package struct; public class ForDemo01 { public static void main(String[] args) { int [] number ={10,20,30,40,50};//定义了一个数组 for (int i = 0; i < 5; i++) { System.out.print(number[i]+"\t"); } System.out.println(); System.out.println("=============="); //遍历数组的元素 for(int x:number){ System.out.print(x+"\t"); } } }
-
打印三角形
package struct; public class TextDome { public static void main(String[] args) { //打印三角形 5行 //把他看成两个直角三角形第一步将倒着的三角转换成空格 for (int i = 1; i <= 5; i++) { for (int j = 5; j >=i; j--) { System.out.print(" "); } for (int j = 1; j <= i; j++) { System.out.print("*"); } for (int j = 1; j < i; j++) { System.out.print("*"); } System.out.println(); } } }
方法
什么是方法
- java方法是语句的集合,它们在一起执行一个功能。
- 方法是解决一类问题的步骤的有序组合
- 方法包含与类或对象中
- 方法在程序中被创建,在其他地方被引用
- 设计方法原则: 一个方法只完成一个功能这样有利于我们后期的扩展
方法的定义
-
Java的方法类似与其他语言的函数,是用一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:
-
方法包含一个方法头和一个方法体
-
修饰符:可选,告诉编译器如何调用该方法,定义了该方法的访问类型
-
返回值类型:方法可能会返回值,returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但是没有返回值,在这种情况下,returnValueType的关键字是void
-
方法名:是方法的实际名称,方法名和参数表共同构成方法签名
-
参数类型:参数是一个占位符,当方法调用的时候,传递值给参数,这个值被称为实参或变量,参数列表是指方法的参数类型,顺序参数的个数。参数是可选的,方法可以不包含任何参数
形式参数:在方法被调用时用于接收外界输入的数据
实参:调用方法时实际传给方法的数据
-
方法体:方法体包含具体的语句,定义该方法的功能
修饰符 返回值类型 方法名(参数类型 参数名){ .... 方法体 .... return 返回值; }
package method; public class Deom01 { //mian方法 public static void main(String[] args) { //实际参数:实际调用传递给他的参数 int sum=add(3,4); System.out.println(sum); sanjiao(); } //加法 //形式参数,用来定义作用的 public static int add(int a,int b){ return a+b; } public static void sanjiao(){ for (int i = 1; i <= 5; i++) { for (int j = 5; j >=i; j--) { System.out.print(" "); } for (int j = 1; j <= i; j++) { System.out.print("*"); } for (int j = 1; j < i; j++) { System.out.print("*"); } System.out.println(); } } }
-
方法的调用
-
调用方法:对象名.方法名(实参列表)
-
Java支持两种调用方法的方式,根据方法是否返回值来选择。
-
当方法返回一个值的时候,方法调用通常被当作一个值。
int larger = max(30,40);
-
值传递 (Java) 和引用传递
方法的的重载
-
重载就是在一个类中,有相同的函数名称,但形参不同的函数
-
方法的重载的规则:
- 方法名必须相同
- 参数列表名必须相同(个数不同,或者参数类型不同,参数排序顺序不同)
- 方法的返回类型不要求
package method; public class Demo02 { public static void main(String[] args) { int sum=add(3,4); int sum1 = add(3,4,5); double sum2=add(6,2); System.out.println(sum); System.out.println(sum1); System.out.println(sum2); } public static int add(int a,int b) { return a+b; } public static int add(int a,int b,int c) { return a+b+c; } }
命令行传参
可变参数
-
JDK1.5开始,Java支持传递同类型的可变参数给一个方法
-
在方法的声明中,在指定参数类型后加一个省略号(‘’')
-
在一个方法中只能指定一个可变参数,它必须时方法的最后一个参数。任何普通的参数必须在它之前声明
package method;
public class Demo03 {
public static void main(String[] args) {
printMax(35,25,4,45.2);
printMax(new double[]{1,5,89,14,5});
}
public static void printMax(double... number){
if(number.length==0){
System.out.println("No argument passed");
return;
}
double result = number[0];
//排序
for (int i = 1; i < number.length; i++) {
if(number[i]>result){
result=number[i];
}
}
System.out.println("The max value is " + result);
}
}
递归
- 利用递归可以用简单的程序来解决一些复杂的问题把大问题化简成多个小问题
- 递归包含两个部分
- 递归头:什么时候不调用自生方法,如果没有头,将陷入死循环
- 递归体:什么时候需要调用自生方法。
package method;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
scanner.close();
int b = f(a);
System.out.println(b);
}
public static int f(int n){
if(n==1){
return 1;
}
else{
return n*f(n-1);
}
}
}
递归的理解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EPF42Mhh-1594564195641)(D:\图片\java基础截图\递归.png)]
数组
数组的声明创建
-
首先必须声明数组变量,才能在程序中使用数组。
dateType [] arrayRefVar; //首选的方法 dateType arrayRefVar[]; //效果相同,单不是首选
-
Java语言使用new操作符来创建数组
dateType [] arrayRefVar = new date Type[arrSize]; int [] arr = new int [200];
-
数组的元素是通过索引访问的,数组索引从0开始
-
数组的长度 arr.length();
三种初始化
-
静态初始化 (创建 + 赋值)
int [] a = {1,2,3}; Man[] mans = {new Man(1,1), new Man(2,2)};
-
动态初始化 (包含默认初始化)
int [] a= new int[2]; a[0] =1; a[1] =2;
数组的使用
package array;
public class Demo01 {
public static void main(String[] args) {
int[] arrays = {1,2,3,4,5};
//for加强版
for(int array:arrays){
System.out.print(array+" ");
}
System.out.println();
System.out.println("=============");
ptintArray(arrays);
System.out.println("=============");
int [] reverse = reverse(arrays);
ptintArray(reverse);
}
//反转数组
public static int [] reverse(int [] arrays){
int [] result = new int [arrays.length];
for (int i = 0,j=arrays.length-1; i < arrays.length; i++,j--) {
result[j]=arrays[i];
}
return result;
}
//打印数组
public static void ptintArray(int []arrays){
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i]+" ");
}
System.out.println();
}
}
多维数组
-
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组
-
二维数组
int a[][] = new int[2][5];
总结
今天带齐了所有的装备,算是按照规定时间完成了对应的任务,感觉今天过的很充实。明天就开始考英语了,英语考完就快乐了呀。可以好好的学习视频,今天看到了狂神的自我介绍,介绍了自己的经历。从一个辍学少年学习编程到大牛,好腻害的。只比我大一岁,但是生活经历和生活感悟是我在学校感悟不了的。但是这个乐观的精神和学习的态度值得我学习呀,即使再小的帆也能远航。我也会自己努力加油的!!!共勉:
未来可期,人生值得
2020/7/12