顺序结构--选择结构
顺序结构
- JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
- 顺序结构是最简单的算法结构。
- 语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,他是任何一个算法都离不开的一种基本算法结构。
选择结构
if单选结构
我们很多时候需要判断一个东西是否可行,然后我们才去执行,这样子一个过程在程序中用if语句来表示
语法
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
package com.qiaomai.www.struct;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
if (s.equals("zzz")){
System.out.println("正确");
}
System.out.println("错误");
scanner.close();
}
}
s.equals("字符串"):可以判断字符是否相等,不能像int类型使用"=="
if双选结构
那么现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发,这样子一个if就搞不定了,我们需要有两个判断,需要一个双选结构,所以就有了if-else结构。
语法
if(布尔表达式){
//如果表达式的值为true
}else{
//如果表达的的值为fals
}
package com.qiaomai.www.struct;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("收购是否成功");
String s = scanner.nextLine();
if (s.equals("成功")) {
System.out.println("请支付100万元");
} else
{System.out.println("请另寻高明");
}
scanner.close();
}
}
if多选结构
我们发现刚才的代码不符合实际情况,真实情况还可能存在ABCD,存在区间多级判断。比如90-100就是A,80~90就是B,等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选结构来处理这类问题!
语法
if(布尔表达式1){
//如果表达式的值为true
}else if(布尔表达式2){
//如果表达式的值为true
}else if(布尔表达式3){
//如果表达式的值为true
}
else{
//如果表达的的值为fals
}
package com.qiaomai.www.struct;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入");
int i = scanner.nextInt();
if (i>0 && i<60) {
System.out.println("不及格");
} else if (i < 70 && i >= 60) {
System.out.println("C");
} else if (i < 80 && i >= 70) {
System.out.println("B");
} else if (i < 90 && i >= 80) {
System.out.println("A");
} else if (i < 100 && i >= 90) {
System.out.println("S");
} else if (i == 100) {
System.out.println("S+");
} else {
System.out.println("输入有误");
scanner.close();
}
}
}
if 语句至多有1个 else 语句,else语句在所有 else if 语句之后。
if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
一旦其中一个 else if 语句检测为true 其他 else if 以及 else 语句都将跳过执行。
嵌套的if结构
使用嵌套的 if ........else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以想 if 语句一样嵌套 else if ...else。
语法
if(布尔表达式1){
//如果表达式的值为true
if(布尔表达式2){
//如果表达式的值为true
}
}
思考?我们需要寻找一个数在1-100之间。
package com.qiaomai.www.struct;
import java.util.Scanner;
public class IfDemo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = scanner.nextInt();
if (i<50 && i>=0){
System.out.println("在这个范围内");
if (i==49){
System.out.println("你答对了");
}
}
else if (i<100 && i>=50){
System.out.println("不在这个范围内");
}
scanner.close();
}
}
switch多选择结构
多选择结构还有一个实现得方式是switch case 语句。
switch case 语句判断一个变量与一系列中某个值是否相等,每个值称为一个分支
switch(expression){
case value :
//语句
break;//可选
case calue :
//语句
break;//可选
//你可以有任意数量得case语句
default://可选
//语句
}
package com.qiaomai.www.struct;
public class SwitchDemo02 {
public static void main(String[] args) {
String name = "荞麦";
switch (name){
case "优秀":
System.out.println("S+");
break;
case "荞麦":
System.out.println("你答对了");
break;
default:
System.out.println("没有此类情况");
}
}
}
case具有穿透性,如果不以break结尾,则内容会全部输出。
switch 语句中变量得类型可以是:
byte、short、int或者char
从Java SE 7 开始,switch 支持字符串 String 类型了
同时 case 标签必须为字符串常量或字面量。
利用IDEA反编译,查看源码
在项目结构中找到编译器输出位置,找到.class(字节码文件)复制。
将字节码文件拷贝到项目包文件下,直接打开就可以看到反编译得源码。从源码中可以印证字符串得本质还是数字。