顺序结构
- Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
- 顺序结构是最简单的算法结构。
ackage com.uky.struct;
public class ShunXuDemo {
public static void main(String[] args) {
System.out.println("hello1");
System.out.println("hello2");
System.out.println("hello3");
System.out.println("hello4");
System.out.println("hello5");
}
}
备注:突然看到代码已经能分清楚颜色了,是个小惊喜,此前的代码写的都是清一色的一种颜色,原来是因为只是用```创建的代码块而已,实际应该用Java代码块编写,就是markdown的写法用···Java 来创建代码块就有了颜色,可以分清楚注释和代码内容了,便于复盘。
- 语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
选择结构☆
- if单选择结构
- if双选择结构
- if多选择结构
- 嵌套的if结构
- switch多选择结构
if单选择结构
- 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示
- 语法表示如下:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
package com.uky.struct;
import java.util.Scanner;
public class IFDemo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
//equals:判断字符串是否相等
if(s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
返回值为
请输入内容:
Hello
Hello
End
Process finished with exit code 0
当随便输入,返回值为
请输入内容:
asfasfaf
End
Process finished with exit code 0
if双选择结构
- 假如现在有个需求,公司要收购一个软件,成功了,个人支付100万元,失败了,自己找人开发。这样的需求用一个if就搞不定,我们需要有两个判断,需要一个双选择结构,所以就有了if-else结构。
- 语法表示如下:
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
package com.uky.struct;
import java.util.Scanner;
public class IFDemo2 {
public static void main(String[] args) {
//考试分数大于60就是及格,小于60分就是不及格。
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score=scanner.nextInt();
if (score>60){
System.out.println("及格");
}else {
System.out.println("不及格");
}
scanner.close();
}
}
返回值如下
请输入成绩:
80
及格
Process finished with exit code 0
做下上面练习题
package com.uky.struct;
import java.util.Scanner;
public class IFPractice {
public static void main(String[] args) {
//如果收购成功,支付100万元,否则,自己找人开发
Scanner scanner = new Scanner(System.in);
System.out.println("请输入支付金额:");
int score=scanner.nextInt();
if (score>=100){
System.out.println("收购成功");
}else {
System.out.println("失败");
}
scanner.close();
}
}
返回值为
请输入支付金额:
100
收购成功
Process finished with exit code 0
请输入支付金额:
60
失败
Process finished with exit code 0
if多选择结构
- 我们发现上面的代码不符合实际情况,真实情况还可能存在ABCD,存在区间多级判断。比如90-100就是A,80-90就是B。。。等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我们要一个多选择结构来处理这类问题。
- 语法如下
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码
}else if(布尔表达式2){
//如果布尔表达式2的值为true执行代码
}else if(布尔表达式3){
//如果布尔表达式3的值为true执行代码
}else{
//如果布尔表达式2的值为true执行代码
}
package com.uky.struct;
import java.util.Scanner;
public class IFDemo3 {
public static void main(String[] args) {
//考试分数大于60就是及格,小于60分就是不及格。
Scanner scanner = new Scanner(System.in);
/*
if语句至多有1个else语句,else语句在所有的else if语句之后。
if语句可以有若干个else if语句,它们必须在else语句之前。
一旦其中一个else if语句检测为true,其他else if以及else语句都将跳过执行。
*/
System.out.println("请输入成绩:");
int score=scanner.nextInt();
if (score==100){
System.out.println("恭喜满分");
} else if (score<100 && score>=90) {
System.out.println("A级");
} else if (score<90 && score>=80) {
System.out.println("B级");
}else if (score<80 && score>=70) {
System.out.println("C级");
}else if (score<70 && score>=60) {
System.out.println("D级");
}else if (score<60 && score>=0) {
System.out.println("成绩不及格");
}else {
System.out.println("成绩不合法");
}
scanner.close();
}
}
返回值下面几种情况,按不同输入有所不同
请输入成绩:
120
成绩不合法
Process finished with exit code 0
请输入成绩:
100
恭喜满分
Process finished with exit code 0
请输入成绩:
90
A级
Process finished with exit code 0
请输入成绩:
80
B级
Process finished with exit code 0
请输入成绩:
50
成绩不及格
Process finished with exit code 0
嵌套的if结构
- 使用嵌套的if…else语句是合法的。也就是说我们可以在另外一个if 或者 else if语句中使用if 或者 else if语句。可以像if语句一样嵌套else if … else。
- 语法如下:
if(布尔表达式1){
如果布尔表达式1的值为true执行代码
if(布尔表达式2){
如果布尔表达式1的值为true执行代码
}
}
- 思考如何寻找一个在1-100之间的数?
这里就需要嵌套,意思是第一次从1-50和51-100之间去找,再不停嵌套下去进行寻找。
switch多选择结构
- 多选择结构还有一个实现方式就是switch case语句。
- switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//可以有任意数量的case语句
default: //可选
//语句
}
- switch语句中的变量类型可以是:
- byte,short,int或者char。
- 从Java SE 7开始,switch 支持字符串String类型了
- 同时case标签必须为字符串常量或字面量
package com.uky.struct;
public class SwitchDemo1 {
public static void main(String[] args) {
//case 穿透 //switch 匹配一个具体的值
char grade = 'B';//后面的语句如果没有break会一直穿透显示,一直显示返回值到有break的地方为止
switch (grade) {
case 'A':
System.out.println("优秀");
break; //可选
case 'B':
System.out.println("良好");
case 'C':
System.out.println("及格");
case 'D':
System.out.println("再接再厉");
break; //可选
case 'E':
System.out.println("挂科");
default:
System.out.println("未知等级");
}
}
}
注意看break的位置,再看返回值
良好
及格
再接再厉
Process finished with exit code 0
☆Switch支持字符串String类型
package com.uky.struct;
public class SwitchDemo2 {
public static void main(String[] args) {
String name="Java初学者";
// JDK7之后的新特性,表达式结果可以是字符串,方便更多的匹配场景。
//字符的本质还是数字
//反编译 java---class(字节码文件)---反编译(IDEA),了解即可!!
switch (name) {
case "Uky":
System.out.println("Uky");
break;
case "Java初学者":
System.out.println("Java初学者");
break;
default:
System.out.println("干啥呀,嘎嘎的!");
}
}
}
返回值找到“Java初学者”,说明匹配成功。
Java初学者
Process finished with exit code 0