一、数组
1、特点:a、数据类型相同 b、按顺序排列
2、声明数组
(1)声明一维数组:
//只能在声明的时候赋值
第二种:double [] string = new double [] {99,89.0,93.0};
//可以先声明再赋值
/*
* double [] scores;
* scores = {99,89.0,93.0};错误
* double [] string;
* string = new double [] {99,89.0,93.0};正确
* /
(2)声明二维数组//区别同上
第一种:String[] [] strings =new String[] []{{"xiaohong","123"},
{"xiaoming","234"},{"xiaolin","345"}};
第二种:String[] [] sttrings ={{"xiaohong","123"},
{"xiaoming","234"},{"xiaolin","345"}};
3、指定长度
(1)、一维数组
double [] strring = new double[3];//指定长度
(2)、二维数组
4、加强循环
for (double i:string) {
System.out.println(i);
}//string为数组名
*********************************
//遍历二维数组加强循环
for(String [] abc:strings) {
for(String bcd:abc) {
System.out.println(bcd);
}
}
二、条件与循环
1、if条件分支语句
if(布尔表达式1){
//布尔表达式1为true时执行的代码
}else if(布尔表达式2){
//布尔表达式1为false但是布尔表达式2为true时执行的代码
}else if(布尔表达式3){
//布尔表达式1和布尔表达式2为false但是布尔表达式3为true时执行的代码
}else{
//布尔表达式1、布尔表达式2和布尔表达式3均为false时执行的代码
}
【注意:1、if分支语句中去掉括号,则对第一行代码有效;2、else不能单独使用。】
2、switch条件分支语句
switch ( 表达式 ) {
case 常量1 :{
当表达式的值等于整型常量1时执行的语句;
break;//当一种情况包含其他情况时
}
case 常量2 :{
当表达式的值等于整型常量2时执行的语句;
break;
}
......
default:{
当表达式的值不满足任何一个case的值时,执行的语句;
}
}
3、for循环
for (int i = 0;i < 100 ;i++ ){
System.out.println("a");
}
4、while循环
while(布尔型循环条件){
循环代码块
}
do {
循环操作
} while ( 布尔型循环条件);
三、排序
1、冒泡排序
int [] numbers = {1,2,3,4,5};
for(int time=1;time<numbers.length;time++) {
for(int i=0;i<numbers.length-time;i++) {
if(numbers[i]>numbers[i+1]) {
numbers[i]=numbers[i]+numbers[i+1];
numbers[i+1]=numbers[i]-numbers[i+1];
}
}
}
for (int i : numbers) {
System.out.println(i);
}
2、插入排序
int [] num= {1,2,4,5,5,3};
int date = num[5];
for(int i=0;i<num.length-1;i++) {
if(num[i]>date) {
int f = i;
for(int j=num.length-1;j>i;j--) {
num[j]=num[j-1];
}
num[f]=date;
break;
}
}
for (int p : num) {
System.out.println(p);
}
3、值传递和地址传递
//地址传递
int [] nums = {1};
int [] bers = nums;
bers[0] = 0;
System.out.println(nums[0]);
//结果:0
//值传递
int [] num = {1};
int [] age = {num[0]};
age[0] = 2;
System.out.println(num[0]);
//结果:1