2021.7.5
1. 顺序结构
- Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
- 顺序结构就是最简单的算法结构
- 语句与语句之间,框与框之间是按照从上到下的顺序执行的,由若干个依次执行的处理步骤组成
- 是任何一个算法都离不开的一种基本算法结构
2.选择结构
-
if单选择结构
-
语法
if(布尔表达式){ //如果布尔表达式为true将要执行的语句 }
-
-
双选择结构
-
语法:
if(布尔表达式){ //如果布尔表达式为true将要执行的语句 }else{ //如果布尔表达式的值为false执行的语句 }
-
-
if多选择结构
-
语法:
if(布尔表达式1){ //如果布尔表达式的值为1执行的语句 }else if(布尔表达式2){ //如果布尔表达式的值为2执行的语句 }else if(布尔表达式3){ //如果布尔表达式的值为3执行的语句 }else{ }
-
3.Switch多选择结构
-
多选择结构还有一个实现方式就是Switch case语句
-
switch case语句判断一个变量与一系列值中某个值是否相等,每个值相当于一个分支
-
语法:
switch(expression){ case value: //语句 break; case value: ...... break; default: ..... }
-
注意case穿透,记得加上break;
-
例如:
char grade = 'B'; switch(grade){ case 'A': System.out.println("优秀"); break; case 'B': System.out.println("良好"); //break; case 'C': System.out.println("合格"); case 'D': System.out.println("不合格"); }
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fdEyuwoi-1626246533913)(C:\Users\77568\AppData\Roaming\Typora\typora-user-images\image-20210705163335365.png)]
-
-
-
switch语句中的变量类型
- byte、short、int或者char;
- 从Java SE7开始,switch开始支持字符串String类型
4.循环结构
-
while循环
-
语法:
while(布尔表达式){ //循环内容 }
-
当布尔表达式的值为ture时,循环就会一直执行下去;
-
我们大多数是会让循环停止下来的,我们需要一个表达式失败来结束循环;
-
少部分情况下需要循环一直执行,比如服务器的请求响应监听等;
-
循环条件一直为true时就会造成死循环(无限循环),应当尽量避免
-
举例:1-100累加:
-
int i = 1; int sum = 0; while(i <= 100){ sum = sum+i; i++; } System.out.println(sum);
-
-
-
do…while循环
-
语法
do{ //要执行都语句 }while(布尔表达式)
-
满足及时不满足条件也至少执行一次的场景
-
和while相比,do…while至少可以执行里面的语句一次
-
两者的区别
- while是先判断后执行语句,do…while则是先执行后判断
- Do…while能够保证循环体内到的语句至少执行一次
-
举例:1-100的累加,注意和while代码的区别
int sum = 0; int i = 1; do{ sum = sum +i; i++; }while (i <= 100); System.out.println(sum);
-
-
For循环
-
支持迭代的一种通用结构,最有效和最灵活
-
语法
for(初始化;布尔表达式;更新){ //执行语句}
注意: 初始化可以是一个空语句
-
举例
- 1-100奇数和偶数的和
int oddSum = 0;//奇数和 int evenSum = 0;//偶数和 for (int i = 0; i <= 100; i++) { if(i % 2 ==0){//偶数的情况下 evenSum += i; }else{ oddSum += i; } } System.out.println("奇数和:"+oddSum+"\n"+"偶数和:"+evenSum);
-
输出1-1000之间能被5整除的数,并且每行输出三个
int j = 0; for (int i = 1; i <= 1000; i++) { if(i % 5 == 0){ j += 1; System.out.print(i+"\t"); if(j % 3 == 0){ System.out.println("\n"); } } }
或者:
//输出1-1000之间能被5整除的数,并且每行输出三个 //int j = 0; for (int i = 1; i <= 1000; i++) { if(i % 5 == 0){ // j += 1; System.out.print(i+"\t"); if(i % 15 == 0){ System.out.println("\n"); } } }
- **注意:**println会自动换行,print则不会
-
打印九九乘法表
for(int i =1 ; i <= 9 ; i++){ //System.out.print("\n"); for(int j = 1 ; j <= i ; j++){ System.out.print(j+"X"+i+"="+i*j+"\t"); } System.out.println(); }
-
-
增强型for循环
-
主要要用于数组或者集合的增强型for循环。
-
语法
for(声明语句:表达式){ //执行语句}
-
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用于限定在循环语句块,其值与洗漱数组元素的值相等;
-
表达式:表达式要访问的数组名,或者是返回值为数组的方法
-
举例:
int[] numbers = {1,2,3,4,5,6}; for(int x:numbers){ System.out.println(x); }
-
-
5.break和continue
- beak:无论循环有没有结束,或者进行了多少次循环,强制性退出或者中指所在的整个循环
- continue:用于终止某一次循环,进入下一次循环,不是终止整个循环
6.打印一个三角形
-
第一步:打印第一个三角形
for(int i = 1 ; i<= 5; i++){ for(int j = 5 ; j >= i ; j--){ System.out.print(" "); } System.out.println();}
- 效果图:
-
第二步:打印第二个三角形
for(int i = 1 ; i<= 5; i++){ for(int j = 5 ; j >= i ; j--){ System.out.print("*"); } for(int j = 1 ; j <= i ; j++){ System.out.print("*"); } System.out.println();}
-
效果图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ORuWXOOk-1626246533917)(C:\Users\77568\AppData\Roaming\Typora\typora-user-images\image-20210705230825458.png)]
-
-
第三步,打印第三个三角形,同时将第一个三角形的*替换为空格
//打印三角形 for(int i = 1 ; i<= 5; i++){ for(int j = 5 ; j >= i ; j--){ System.out.print(" "); } for(int j = 1 ; j <= i ; j++){ System.out.print("*"); } for(int j = 1 ; j < i ; j++){ System.out.print("*"); } System.out.println(); }
- 效果图
-
注意:第三个三角形只要 j < i 即可,因为只需要从第二行开始打印四行 *,如果是j <= i;
会出现下面的效果: