2021/10/26 从零开始学java笔记 day02
一、Java中的控制流程
1、条件语句
if(condition)
{
statement1;
}
else if()
{
statement2;
}
...
else
{
statement3;
}
2.循环语句
2.1 while循环
while(condition)
{
statement;
}
or
do
{
statement
}
while(condition);
当while语句在前时,先判断,后执行语句;当while在语句之后时,先执行一次语句,再判断
2.2 for循环
for(int i=10;i<=20;i++)
{
statement;
}
如果需要再for循环之外使用i,就需要提前声明
3、多重选择switch语句
switch(choice)
{
case1:
...
break;
case2:
...
break;
...
default:
...
break;
}
注意每个case后面都要加break以防止出现多次输出
二、数组
1、数组初始化
声明一个可以储存100个整数的数组
int[] a= new int[100]
int[] a={0,1,2,...,99}
- 若不赋值,整数数组都时0,字符串数组都是null,布尔型数组都是false
- 每个数组都是从0开始,而非1
- 一旦定义一个数组的长度就不能更改了
2、foreach函数
针对数组或者实现Iterable接口的类对象的循环体,相对于for循环会更简洁
for(int element : a)
System.out.println(element);
3、数组的拷贝
使用函数:Array.copyOf(被拷贝函数名,新数组长度),若新数组的长度更长,数值型数组多余的元素被赋值为0,布尔型数组多余的元素被赋值为false。若新数组的长度更短,则只拷贝最前面的元素。
int[] number=[1,2,3,4]
int[] copiedNumber=Array.copyOf(Number,Number.length)
4、数组排序
Java内部自带了许多快速排序算法。起中常见的有Array.sort()
import java.util.*;
public class Hello {
public static void main(String[] args) {
//抽奖程序,从1到100中随机抽取10个数字并把他们输出
int n=100;
int k=10;
int[] Number=new int[n];
for(int i=0;i<n;i++)
{
Number[i]=i+1;
}//对Number数组从1到100赋值
int[] selectNumber=new int[k];
for(int i=0;i<k;i++)
{
int s=(int)(Math.random()*n);//随机得到某一下标
selectNumber[i]=Number[s];//把该下标对应的值赋给新数组
Number[s]=Number[n-1];//用数组最后一个元素替代已被选中的值
n--;//让下一次随机数选择的范围缩小
}
Arrays.sort(selectNumber);//数组排序
for(int element:selectNumber)
{
System.out.println(element);
}
}
}
5、多维数组
多维数组的初始化与一维相同:
int[][] array={{1,2,3},{4,5,6},{7,8,9}}
//以银行债券收益表为例
public class CompoundInterest {
public static void main(String[] args) {
final double startRate=10;
final int x=6;
final int y=10;
double[] interest=new double[y];
for(int i=0;i<interest.length;i++)
{
interest[i]=(startRate+i)/100.0;
//构建利率数组,从10%-20%
}
double[][] balance=new double[x][y];
for(int i=0;i<balance[0].length;i++)
{
balance[0][i]=10000;
//规定初始金额为10000元
};
for(int i=1;i<x;i++)
{
for(int j=0;j<y;j++)
{
double oldBalance=balance[i-1][j];
balance[i][j]=oldBalance*(1+interest[j]);
//第i年的价值等于第i-1年的价值加上利息
}
};
for(double[] row:balance)
{
for(double a:row)
{
System.out.println(a);
//双层循环输出列表
}
System.out.println();
};
}
}
注意:Java中本质上没有多维数组,只有一维。多维是指多个数组组成的数组。所以java中存在不规则数组。