前言:多写代码,多写代码,多写代码!
目录
程序流程控制
顺序结构
分支结构
if…else语句
if嵌套使用
switch语句
循环结构
while循环
do-while循环
for循环
循环嵌套
特殊流程控制break&continue
程序流程控制
顺序结构
程序自上而下,依次逐行执行。
分支结构
对于先判断再选择的问题,我们就要使用分支结构
if…else语句
if条件成立→执行if中代码,否则执行else中代码
if嵌套使用
if→成立则执行if中代码,否则执行else if的if判断→成立则执行else if中代码,否则执行else
switch语句
switch(表达式){
case 表达式常量1:语句1;
break;
case 表达式常量2:语句2;
break;
......
case 表达式常量n:语句n;
break;
default:语句n+1;
}
switch
switch表示“开关”,这个开关就是 switch 关键字后面小括号里的值,小括号里要放一个整型变量或字符型变量。表达式必须为 byte,short,int,char类型。
Java7 增强了 switch 语句的功能,允许 switch 语句的控制表达式是 java.lang.String 类型的变量或表达式。只能是 java.lang.String 类型。
case
case子句中的值必须是常量,且值不能相同
default
default子句是可任选的,当没有对应的case值时,执行default
break
程序从第一个break处跳出,若无break,程序将会按顺序执行到switch结尾
循环结构
反复执行一段相同的代码,使用循环便会方便很多
循环四部分:初始化(循环开始变量赋初值)、循环条件(判断是否执行循环)、迭代(改变变量状态)、循环体(需要重复的部分)
while循环
while(循环条件) { 循环体 }
do-while循环
do{ 循环体 }while(循环条件);(;不能丢),至少执行一次循环体
for循环
使用最广泛、功能最强的循环
for(初始化;循环条件;迭代){ 循环体 }
例:
for(int i = 1 ; i <= 10 ; i++) {
System.out.println(i+"easy");
}
循环嵌套
循环套循环(禁止套娃),多层循环,不建议太多层,影响执行效率
经典:九九乘法表
//1 * 1 = 1
//1 * 2 = 2 2 * 2 =4
//.... 找到循环的规律
for(int i = 1 ; i <= 9 ; i++) {
for(int j = 1 ; j <= i ; j++) {
System.out.print(j+" * "+i+" = "+i*j+'t');
if(i == j)
System.out.print('n');
}
}
注:尽量保证外层循环次数 < 内层循环次数
特殊流程控制break&continue
break(只能用于switch语句和循环语句):用于终止某个语句的执行,上边已经介绍过了switch语句中的break,当然break也能终止循环,比如我们在for循环中使用break语句,程序就会跳出循环。
for(int i = 1 ; i <= 10 ; i++) {
if(i == 5) break;
System.out.println(i+"easy");
}
对比上边for循环的代码,体会break的作用
continue(只能用于循环语句):用于跳过循环中的循环体的一次执行,直接执行下一次
for(int i = 1 ; i <= 10 ; i++ ) {
if(i % 2 == 0) continue; //当i被2整除时,continue结束当前这次循环,直接进入下一次
System.out.println(i);
}
return:用于结束一个方法
return与break、continue不同,当方法执行到return时,无论return是否处于循环内,都会直接结束整个方法。
break、continue功能类似,continue终止本次循环,break终止本层循环。
数组
如果我们需要定义很多相同类型的变量的时候,一个一个去定义?那也太累了!
就好比我们打boss时一直用普通攻击刮痧。这时,我们就要学会一个较高伤害的技能—数组(技能描述:集所有普通攻击为一体,一次性使用)
所以,数组就是存放多个相同类型变量的有序集合
一维数组声明一维数组:
数据类型 数组名 [ ] 或 数据类型[ ] 数组名
例如:
int arr[ ]; int[ ] arr; float a[ ]; //是不是感觉少了点东西??没错,就是中括号里的东西——元素个数(数组长度),下面我们会逐步了解。
初始化:
动态初始化:先声明数组并且为数组元素分配空间,之后再进行赋值
int arr[ ] = new int[3]; //声明一个能存放3个int类型数据的数组 arr[0] = 2; //第一个元素为2 arr[1] = 4; //第二个元素为4
动态初始化时,数组默认初始化为0,当我们用new给数组创建内存后,它就已经隐式初始化了(看不见摸不着),我们未给元素赋值时,它的值为0。若元素为对象,那么默认类型是null。
int arr[ ] = new int[3]; System.out.println(arr[1]); //此时arr[1]的值为0
静态初始化:声明数组,分配空间的同时赋值
int arr[ ] = new int[ ]{1,2,3} //声明一个存放了1,2,3的数组
int a[ ] = {1,2,3}
数组声明了,如何引用呢?—— 数组名 [ 元素下标 ]
new创建内存之后,才能引用数组中的元素
元素下标可以时整型常量或整型表达式:如a[ 3 ]、arr[ x ]、array[ 2*i ]
简单理解为数组中第几个元素
由于元素下标是从0开始的,所以第一个元素为a[0],第n个元素为[ n-1 ]
指明数组长度
int arr[ ] = new int[ ] {1,2,3,4};
System.out.println(arr.length); //arr.length用于指明数组arr的长度(元素个数)



