1.顺序结构
- 顺序结构就是程序从上到下执行,没有跳转和循环;
2.分支结构
1.if条件语句
public class IfTest {
public static void main(String[] args){
int age = 20;
if(age > 20){
System.out.println("true");
}
else{
System.out.println("false");
}
}
}
- 如果if和else语句后面只跟一句程序时,可以省略花括号;否则语句就是全局执行的;
2.switch分支语句
- switch语句后面只能是byte, short, char, int, 枚举,String这几种;
public class SwitchTest
{
public static void main(String[] args)
{
var score = 'C';
switch (score)
{
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("中");
break;
case 'D':
System.out.println("及格");
break;
case 'F':
System.out.println("不及格");
break;
default:
System.out.println("成绩输入错误");
}
}
}
3.循环结构
1.while循环:先判断再执行
public class WhileTest {
public static void main(String[] args) {
var count = 0;
while (count < 10) {
System.out.println(count);
count++;
}
System.out.println("循环结束");
}
}
2.do..while:先执行再判断
public class DoWhileTest
{
public static void main(String[] args)
{
var count = 1;
do
{
System.out.println(count);
count++;
}while (count < 10);
System.out.println("循环结束!");
var count2 = 20;
do
System.out.println(count2++);
while (count2 < 10);
System.out.println("循环结束!");
}
}
- 和if一样,只有后面跟的是单行语句,才可以省略{}
3.for循环
//大部分情况下,for循环可以替代while和do-while
public class ForTest{
public static void main(String[] args){
for(int i = 10; i<100; i++){
System.out.println("输出i"+i);
}
}
}
4.控制循环结构
1.使用break结束循环;
2.使用continue忽略本次循环的剩余语句,进行下一次循环;
3.使用return结束方法;
5.数组类型
1.定义数据
- 数组中的元素都是同一类型;
- 数组长度不可变化;
- 数组是引用类型;
- 定义数组的方式
int[] arr1;
int arr1[];
2.数组初始化
- 在Java中,数组必须先初始化,然后才能使用;
- 初始化方式
//静态初始化
int[] arr1;
arr1 = new int[]{1,2,3,4,5};
Object[] arr2;
arr2 = new String[]{"ASD","DDD"};
int[] arr3 = {1,2,3,4};
//动态初始化
int arr4;
arr4 = new int[10]; 默认为0,false,null
3.使用数组
- 数组使用[]来访问数组元素;
- 数组的第一个索引是a[0],最后一个是a[length - 1];
- 数据越界异常:java.long.ArrayIndexOutOfBoundsException:N
4.foreach循环
- foreach循环适用于遍历数组和集合;
public class FETest{
public static void main(String[] args){
String[] strarr = {"ASS", "ADDS"};
//如果希望在循环过程中改变数组的值,则不能使用foreach,因为foreach中的循环变量是临时变量;
for(String ste : strarr)
{
System.out.println(ste);
}
}
}
6.深入数组
1.内存中的数组
- 方法体执行的时候是在栈中执行的,方法使用的成员除了值类型之外(值类型一般是局部变量),都是引用对象类型;
- 引用类型放在堆中,供方法反复使用,直到被垃圾回收;
2.基本类型数组的初始化(page97)
3.引用类类型数组的初始化(page99)
4.多维数组(page100)
- 多维数组的计算机本质就是一维数组;
5.操作数组的工具类Array(page103)
- static修饰的方法可以直接通过类名调用;