2019.7.19 NIIT第三天
自言自语:种一棵树最好的时间是十年前,或者现在
一、3种控制语句
- 顺序控制语句
- 选择控制语句
//1 if(关系表达式){
语句体
}
//2 if(关系表达式){
语句体
}else(
语句体
)
//3 if(关系表达式){
语句体
}else if(关系表达式2){
语句体
}
۞ switch表达式的取值没有long,double,float
۞ JDK7以后表达式可以用String
switch(表达式){
canse 值1:
语句体1;
break;
canse 值1:
语句体1;
break;
default:语句体1;break;
}
- 循环控制语句
//1 for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}
//2 while(判断循环条件){
循环体语句;
控制条件语句;
}
//3 do{
循环体语句;
控制条件语句
}while(判断循环条件);
三者的区别:
- do-while至少执行一次循环体 用于初始化工作
- for和while只有条件成立的时候才执行
- for在循环结束后增量释放,while循环结束后增量不释放
二、控制跳转语句break
-
在选择结构switch在循环语句中break默认跳过当前层的循环一般跳出单层循环
-
跳出外层循环的标值 (标志名:)通过break 标志名;跳多层循环
outer:
for(int i=0;i<10;i++){
for(int j=1;j<=9;j++){
System.out.println("i*j="+ij+"\t");
}
System.out.println();
if(i==2){
break outer;
}
}
三、控制跳转语句continue
跳过当前循环执行该循环的下一次循环
public class Continue01{
public static void main(String[] args) {
outer:
for(int i=0;i<10;i++){
for(int j=1;j<=9;j++){
if(i==2){
continue outer;
}
System.out.println("i*j="+i*j+"\t");
}
System.out.println();
}
}
}
四、Random随机数类
- 使用方法
1、java.util.Random
2、新建随机对象
3、使用nextInt()会产生0(包含)~指定值(不包含)
[0,100)产生0~100(不包含)的随机数
猜数字小游戏
import java.util.Random;
import java.util.Scanner;
public class Radnom02{
public static void main(String[] args) {
Random r=new Random();
Scanner sr=new Scanner(System.in);
System.out.println("input Number");
boolean flag=true;
int b=r.nextInt(100)+1;
while(flag){
int a=sr.nextInt();
if(a>b){
System.out.println("大于");
}else if(a<b){
System.out.println("小于");
}else{
System.out.println("OK");
flag=false;
}
}
}
}
五、数组
存储同一类型多个元素的容器既可以存基本类型也可以存引用类型
1、数据类型[] 数组名 2、数据类型 数组名[]
ps: 1、数组定义了但没有赋值,不能使用,直接打印会编译错误
数组的初始化方式
1、静态初始化
- 在定义时直接给数组赋值 2、动态初始化
- 定义数组
- 给数组设置元素个数
- 给数组赋值
区别;静态在初始化的时候就进行赋值
۞ 数组下标从0开始
六、内存分析
- 栈 存放局部变量 容量小 速度快
- 堆 存放引用类型中的具体数据 容量大 速度慢
七、一维数组
一维数组定义:数据类型[] 数组名 一维数组便遍历
八、二维数组
理解为一个表格 二维数组定义:数据类型[][] 数组名 二维数组便遍历 利用增强型for循环foreach进行字符串数组遍历
for(String[] a:arr){
for(String b:a){
语句;
}
}
数组操作可能会出现的问题
- 访问的元素超出数组范围(下标越界)
- 空指针异常,数组元素未初始化,数组元素为空进行访问
排序操作
可以利用API中数组方法进行排序:Arrays.sort(int[]);