文章目录
JAVA语法基础二
一:流程结构
流程结构分为三种:顺序结构,循环结构,分支结构
1:顺序结构
按照代码先后顺序由上而下执行。如下,按照顺序先执行打印1,后执行打印2
public static void main(String[] args){
System.out.println(1);
System.out.println(2);
}
2:循环结构
循环结构的概念:重复执行某部分代码块。分为for循环,do while循环,while循环 ,有以下部分组成
1.初始化部分;2.循环条件部分;3.循环体部分;4.迭代部分(对初始化信息的更新)
流程判断:判断初始化部分是否满足循环条件,若满足则执行循环体,然后更新迭代部分条件,再次判
断迭代后的初始化信息是否满足循环条件(满足则重复执行,不满足循环停止)。
2.1:for循环
for(初始化条件;循环条件;迭代部分){
循环体
}
public static void main(String[] args){
/**
* 声明变量i=0;当i<20的情况下进入循环,每次循环后i自加1,判断i是否小于20,
* 小于20再次进入循环(重复如此),否则循环停止
* int i=0; 是初始化部分; i<20是循环条件;i++是迭代部分;for内部的是循环体
*/
for(int i=0;i<20;i++){
System.out.println(i);
}
}
2.2:while循环
初始化条件; while(循环条件){ 循环体/迭代部分; }
int m=0;//初始化条件
while(m<10){//循环条件
System.out.print(m);//循环体
m++;//迭代部分
}
2.3:do while 循环
初始化部分; do{循环体部分/迭代部分}while(循环条件){}
int m=0;//初始化
do{
System.out.println(m);//循环体
m++;//迭代部分
} while(m<20){//循环条件
System.out.println(m);
}
while 和do while的区别:
while是先判断是否满足循环条件再执行循环体;最少执行0次;
do while是先执行循环体再判断是否满足循环条件;最少执行1次。
3:分支结构
分支结构的概念:判断是否满足某种条件,满足进入对应分支,不满足进入另一分之的一种结构。
3.1:if分支结构
语法如下:
if(条件表达式){ 分支一 } :若满足条件则进入分之一
if(条件表达式){ 分支一 }else{分支二} :若满足条件则进入分之一反之进入分之二
if(条件表达式1){ 分支一 }else if(条件表达式2){分支二}else{分支三} :若满足条件1进入分之一;若在不满足条件1的情况下且满足条件2则进入表达式2;若同时不满足条件1和条件2则进入分支3.
public static void main(String[] args){
int ks=18;
//不加else的情况
if(ks==18){
System.out.println("ks等于18");
};
//加单个else的情况
if(ks==18){
System.out.println("ks满足等于18");
}else{
System.out.println("ks不满足等于18");
}
//加多个else的情况 (实际是多个else if条件)
if(ks==18){
System.out.println("ks满足等于18");
}else if(ks==19){
System.out.println("ks满足等于19");
}else if(ks==20){
System.out.println("ks满足等于20");
}else{
System.out.println("ks不满足任何以上情况");
}
}
3.2:switch case分支结构
当switch里的判断条件满足一种case情况的时候,执行语句块,跳出switch
switch(判断条件){ case 1: 语句块; break;case 2: 语句块; break;default:break }
int m=15;
switch(m){
case 1:
System.out.println(1);
break;
case 15:
System.out.println(15);
break;
default:
break;
}
//打印结果 :15
其中值得注意的是:
1:switch(表达式)中表达式的值必须是下述类型之一:byte,short,char,int(Integer),枚举 ,String 。
2:break表示执行完满足条件的case分支后,程序跳出switch语句块;如果没有break,程序会顺序执行
到switch结尾。
4:break和continue关键字
break和continue都有停止循环的作用,通常用在循环语句中,或者用在switch case流程控制中。二者的不同
break:终止循环体,跳出循环外
continue:停止本次循环,继续下次循环
public static void main(String[] args){
for(int m=0;m<20;m++){
if(m=3){
//当m=3的时候会终止循环,跳出循环体,因此该循环只执行了三次,m值为0,1,2
break;
}
System.out.println(m);
}
for(int m=0;m<20;m++){
if(m=3){
//当m=3的时候会停止本次循环,开始下次循环,因此当m=3时,循环体未执行,后续循环正常执行
break;
}
System.out.println(m);
}
}
二:数组
2.1 :数组的概念:
数组是一种线性数据结构,是一个使用连续的内存空间存放相同的数据类型的集合容器。
数组内的数据是连续的,且数据是同一种数据类型。
数组创建后有初始值:数字类型为0,布尔类型为false,引用类型为null。
数组声明时必须指定数组的长度,且长度不可更新,数组长度(数组名.length)
数组分为一维数组和二维数组
2.2:数组的声明
2.2.1:一维数组
一维数组(左侧的数据类型和右侧保持一致):
1:数据类型 [] 变量名(表示该数组的名称)=new 数据类型 [长度];
2:数据类型 [] 变量名 = new 数据类型 [] {元素0,元素1,元素2,元素3。。。。。。};
3:数据类型 [] 变量名 = {元素0,元素1,元素2,元素3。。。。。。};
数据类型既可以是基本数据类型(int,long,double,char等等);也可以是引用数据类型(String,Integer,类等到)。
假设有五个同学的成绩分为为80,90,95,74,100,我们可以这么表示
public stativ void main(String[] args){
int one=74
int two=80;
int three =90;
int four=95;
int five=100;
}
但是我们发现,他们五个人的成绩都是用同一个类型表示,还要声明五个变量,会不会觉得麻烦呢?
那么我们就可以利用数组表示这五位同学的成绩
public stativ void main(String[] args){
int [] scores=new int[5];
int[0] =74
int[1] =80;
int[2] =90;
int[3] =95;
int[4] =100;
或者
int [] scores={74,80,90,95,100};
或者
int [] scores=new int [] {74,80,90,95,100};
}
五个同学的成绩统一放在scores这个数组里,这个数组就表示他们五位的成绩。
上面的int[0]表示数组的第一个元素,这个0是数组的下标,数组下标是从0开始的,下标0就是表示数组的第一个元素,依次递推
下标N表示数据的第N+1个元素。
数组的长度决定元素个数:数组的元素个数不能大于数组的长度,否则会报数组下标越界异常。
2.2.2:二维数组
二维数组概念:
由多个一维数组构成的数组。
数组类型[][] 数组名 = new 数组类型[一维数组的个数][每一个一维数组的元素个数];
二维数组的元素是一维数组,一维数组的元素是基本数据和引用数据。
//表示创建一个由三个长度为2的一维数组组成的二维数组。
int[] [] numberArray=new int[3][2];
//表示二维数组的第一个一维数组的第一个元素赋值
int[0][0]=5
//表示给二维数组的第三个元素(一维数组)的第二个元素赋值
int[2][1]=3