Java流程控制和数组


# 一、流程控制 ## 1.选择结构
---布尔表达式的结果只有true/false
---如果if(布尔表达式)后面不写括号(),则只执行后面的第一条语句

a.if双分支结构

if(布尔表达式){
	语句块1;
}else{
	语句块2;
}

双选择结构流程图

b.if多分支结构

if(布尔表达式1){
	语句块1;
}else if(布尔表达式2){
	语句块2;
}else if(布尔表达式n){
	语句块n;
}else{
	语句块n+1;
}

多分支结构流程图

c.if单独使用

if(布尔表达式){
	语句块;
}

单选择结构流程图

d.if嵌套使用

if(布尔表达式1){
	语句块1;
	if(布尔表达式2){
		语句块2;
	}else{
		语句块3;
	}
}else{
	语句块4;
}

f.switch多分支结构

---表达式的类型可以是:byte short int char String 枚举enum
---如果case语句后没有break,则会一直往下进行语句块的输出,直到遇到break结束或执行完毕。
switch(表达式){
	case1:	语句1;	[break;]
	case2:	语句2;	[break;]
	...
	case 值n:	语句n;	[break;]
	default:	默认语句;
}

多分支结构流程图

2.循环结构

a.while循环

while(布尔表达式){
	循环体;
}

while流程图

b.do-while循环

---循环体最少进行一次
do{
	循环体;
}while(布尔表达式);

do-while流程图

c.for循环

---如果括号for(;;)里面没有初始表达式、布尔表达式、迭代因子,也可以进行循环,只不过是死循环。
---大多数时候都是使用for循环
for(初始表达式 ; 布尔表达式 ; 迭代因子){
	循环体;
}

for循环流程图

3.循环控制

a.break语句

---break直接跳出循环不再执行本层循环中剩下的语句
---return;是直接结束当前方法,范围更大,与当前循环没有关系
for(int i=0; i<10; i++) {
	if(i==2){
		break;	//直接跳出循环
	}
}

b.continue语句

---continue结束本次循环,后面的语句不再执行,直接开始下一次的循环
for(int i=0; i<10; i++) {
	if(i==2){
		continue;	//直接结束i=2的循环,下面的语句不输出
	}
	System.out.println("Hello");
}

4.多重循环

a.多重循环

---循环里面嵌套循环
/*
*	打印九九乘法表
*/
for (int i = 1; i <= 9; i++) {	//行数
	for (int j = 1; j <=i ; j++) {	//每行个数
		System.out.print(j+"*"+i+"="+i*j+"\t");
	}
	System.out.println();
}

b.多重循环的控制

---break、continue控制的循环
/*
*	打印九九乘法表
*/
for (int i = 0; i <= 9; i++) {	//行数
	if(i==0) {
		continue;
	}
	for (int j = 1; j <=i ; j++) {	//每行个数
		System.out.print(j+"*"+i+"="+i*j+"\t");
	}
	System.out.println();
}

二、数组

1.概念

---数组是相同数据类型数据的有序集合

2.特点

---a.数组被确定后长度是固定不变的
---b.数组内每个元素占用的空间大小是相同的
---c.数组内的所有数据类型都是一样的
---d.数组内的数据类型可以是任何数据类型,基本类型和引用类型
---e.数组变量属于引用数据类型

3.声明

数据类型[]	变量名称;//推荐这种方式
type[]  arr_name;
type	arr_name[];//不推荐

4.初始化

//三种方式
int[] arr1 = {1,2,3};//1

int[] arr2 = new int[]{1,2,3};//2

int[] arr3 = new int[3];//3 此时默认都为0
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

5.内存分配

---栈内存中数组变量存的是:堆内存中数组的对应地址
---堆内存中数组元素都有默认值
---栈内存中的变量没有默认值,后进先出

内存分布

---数组元素的默认值表如下:

默认值

6.数组遍历

---数组遍历用到了数组的length属性,arr.length获取数组长度
//第一种:for循环遍历
//根据数组的下标进行遍历
for (int i = 0; i <arr.length ; i++) {
	System.out.println(arr[i]);
}
//第二种:增强for循环
//每次循环都将arr数组内的元素赋值给变量value
for(int value : arr){
	System.out.println(value);
}

7.常见异常

a.空指针异常:NullPointerException

b.数组索引越界异常:ArrayIndexOutOfBoundsException


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值