参考教学视频:秦疆
Java流程控制
Scanner工具包(java5新特性)
Scanner s = new Scanner(System.in);//创建对象,接收接盘数据
if(s.hasNext()){
String a = s.next();
}
if(s.hasNextLine()){
String a = s.nextLine();
}
s.close();
if选择结构
if(boolean){
}else if(boolean){
}else{}
switch结构(java7支持字符串比较)
switch(param){
case "aaa":
break;
case "bbb":
break;
default:
}
while、dowhile循环
while(){}
do{}while()
for循环,增强for循环(java5引入)
for(初始值;boolean;更新值){}
for(:){}
break,continue
-
break:中断当前循环
-
continue:跳出本次循环
Java方法
修饰符+返回值类型+方法名+参数列表+方法体
public String test(String param){
return "Param";
}
方法重载
方法名相同,参数列表不同。
public String test(String a){return a;}
public String test(String a,String b){return a+b;}
命令行传参
java class文件 参数 编码集
可变参数(java1.5特性)
指定参数类型后加...,一个方法中只能有一个,必须是最后一个参数
public void test(String a,int ...b){}
递归
自己调用自己,分为递归头(什么时候不调用自身)和递归体,可能会栈内存溢出
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
数组
int[] a = new int[10];//动态初始化
for(int i=0;i<a.length;i++){int[i]=i+1;}
int[] b = {1,2,3,4,5,6}//静态初始化
(ArrayIndexOutOfBoundsException数组索引越界异常)
多维数组
int[][] a = new int[2][3];
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length){
a[i][j] = j;//乱七八糟的赋个值吧
}
}
int[][] b = new int{{1,1,1},{1,1,2}};
Arrays
Arrays.toString(param);//转为字符串
Arrays.sort(param);//排序
arrays.fill(param,num);//num填充所有
冒泡排序
int[] a = new int[10];//不塞值了,理解逻辑
int temp = 0;
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j+1]<a[j]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
稀疏数组
-
记录几行几列,有多少个不同的值。
-
把具有不同值的元素和行列及值记录在一个小规模的数组中。