从零开始学Java02

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中存在不规则数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值