Java的基本结构就是顺序结构,除非特别声明,否则就是按照顺序一句一句的执行。
顺序结构是最简单的算法结构。
语句与语句之间,框与框之间是按从上到下的顺序进行的,他是由若干个依次执行的处理不走组成的,它是任何一个算法都离不开的一种基本算法结构。
if单选结构:用来判断一个东西是否可行,然后我们才去执行,这样的过程再程序语句中用if语句表示
if(布尔值表达式){
//如果布尔表达式为true将执行的语句
}
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s=scanner.nextLine();
if(s.equals("Hello")){
System.out.println(s+"!");
}
System.out.println("End");
scanner.close();
}
}
输入Hello输出:
请输入内容:
Hello
Hello!
End
没有输入Hello则输出:
请输入内容:
h
End
if(布尔值表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
import java.util.Scanner;
public class IfDemo02 {
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();
}
}
输入60输出:
请输入你的分数:
60
考试不及格!
输入90输出:
请输入你的分数:
90
考试及格!
if(布尔值表达式1){
//如果布尔表达式1的值为true,执行代码
}else if(布尔值表达式2){
//如果布尔表达式2的值为true,执行代码
}else if(布尔值表达式3){
//如果布尔表达式3的值为true,执行代码
}
...
else{
//如果以上布尔表达式都不为true执行代码
}
看下面例子:
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
//考试分数大于60就是及格,小于60就不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的分数:");
int score = scanner.nextInt();
if (score == 100) {
System.out.println("恭喜满分!");
} else if (score >= 90 && score < 100) {
System.out.println("A级");
} else if (score >= 80 && score < 90) {
System.out.println("B级");
} else if (score >= 70 && score < 80) {
System.out.println("C级");
} else if (score >= 60 && score < 70) {
System.out.println("D级");
} else if (score >= 0 && score < 60) {
System.out.println("F级");
} else {
System.out.println("成绩不合法!");
}
scanner.close();
}
}
请输入你的分数:
100
恭喜满分!
请输入你的分数:
95
A级
请输入你的分数:
50
F级
注意点:
if语句至多有一个else语句,else语句再所有的else if语句之后。
if语句可以有若干个else if语句,它们必须在else if语句之前。
一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行。
if(布尔值表达式1){
//如果布尔表达式1的值为true执行代码
if(布尔值表达式2){
//如果布尔表达式2的值为true执行代码
}
}
多选择结构还有一个实现方式就是switch case语句。
switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch (expression){
case value1:
//语句
break;//可选
case value2:
//语句
break;//可选
//可以有任意数量的case语句
default://可选
//语句
}
swtich语句中的变量类型可以是
package com.lee.struct;
public class SwitchDemo01 {
public static void main(String[] args) {
//switch匹配一个具体的值
char grade=‘B‘;
switch (grade){
//case穿透,每个case结束后不加break会一直输出
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 ‘E‘:
System.out.println("挂科");
break;
default:
System.out.println("未知等级");
}
}
}
输出:
良好
package com.lee.struct;
public class SwitchDemo02 {
public static void main(String[] args) {
//JDK7的新特性,表达式结果可以是字符串,但要清楚,字符串的本质还是数字!!
String name ="成年人";
switch (name){
case "成年人":
System.out.println("成年人");
break;
case "青年人":
System.out.println("青年人");
break;
default:
System.out.println("修炼手册");
}
}
}
输出:
成年人
以下是SwitchDemo02.java反编译的.class文件,直接放入IEDA后就可查看。可以看到编译结束后是通过hashCode来判断的。
package com.lee.struct;
public class SwitchDemo02 {
public SwitchDemo02() {
}
public static void main(String[] args) {
String name = "成年人";
byte var3 = -1;
switch(name.hashCode()) {
case 24894678:
if (name.equals("成年人")) {
var3 = 0;
}
break;
case 37996952:
if (name.equals("青年人")) {
var3 = 1;
}
}
switch(var3) {
case 0:
System.out.println("成年人");
break;
case 1:
System.out.println("青年人");
break;
default:
System.out.println("修炼手册");
}
}
}
原文:https://www.cnblogs.com/fxliyh/p/14489180.html