-
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
-
顺序结构是最简单的算法结构
-
语句与语句之间,框与框之间是按从上到下的顺序进行的,他是由若干个依次执行的处理步骤组成的,他是是任何一个算法都离不开的一种基本算法结构
package com.struct;
public class ShunXuTest1 {
public static void main(String[] args) {
//如果没有其他非东西干涉他会按顺序打印
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
System.out.println("6");
System.out.println("7");
}
}
结果:
1
2
3
4
5
6
7
Process finished with exit code 0
选择结构
if但选择结构
-
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示
-
语法
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
列子:
package com.choose;
import java.util.Scanner;
public class ChooseTest1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
String s = scanner.nextLine();
//equlals意思是等于但与=号的用法不同通常用来对字符串进行判断
if (s.equals("dpc")){
System.out.println(s);
}
System.out.println("结束");
scanner.close();
}
}
结果;
请输入:
dpc
dpc
结束
Process finished with exit code 0
equlals意思是等于但与'='号的用法不同通常用来对字符串进行判断'='号一般用来判断基本类型
if双选择结构
-
那现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发。这样的需求一个if就搞不定了,我们需要两个判断,需要一个双选择结构,所以就有了if-else结构。
-
语法
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}
例子 输入一个成绩60以上为级格60一下为不及格
package com.choose;
import java.util.Scanner;
public class ChooseTest2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int s = scanner.nextInt();
if (s>60){
System.out.println("成绩及格"+s);
}else{
System.out.println("成绩不及格"+s);
}
scanner.close();
}
}
结果:
请输入成绩:
32
成绩不合格32
Process finished with exit code 0
if多选择结构
-
我们发现刚才的代码不符合实际情况,真实的情况还可能还存在ABCD,存在多级判断。比如90-100是A ,80-90是B等等,在生活中我们很多时候选择也不仅仅是只有两个,所以我们需要一个多选择结构来处理这类问题
-
语法
if(布尔表达式1){
//如果是布尔表达式1的值为true执行代码
}else if(布尔表达式2){
//如果是布尔表达式1的值为true执行代码
}else if(布尔表达式3){
//如果是布尔表达式1的值为true执行代码
}else{
//如果以上布尔表达式不为true执行代码
}
列子:
package com.choose;
import java.util.Scanner;
public class ChooseTest2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int s = scanner.nextInt();
if (s>=90&&s<=100){
System.out.println("成绩为A"+s);
}else if(s>=80&&s<90){
System.out.println("成绩为B"+s);
}else if(s>=70&&s<80){
System.out.println("成绩为C"+s);
}else if (s>=60&&s<70){
System.out.println("成绩为D"+s);
}else if (s>=0&&s<60){
System.out.println("成绩不及格"+s);
}else {
System.out.println("成绩不合法");
}
scanner.close();
}
}
结果:
请输入成绩:
90
成绩为A90
Process finished with exit code 0
注意:
-
所写程序要严谨要考虑到所有情况防止bug
-
语句至多有一个else 语句,else语句在所有 else if 语句之后
-
语句可以有若干个 else 语句,他们必须在 else 语句之前
-
其中一个 else if 语句检测为 true ,其他的 else if 以及 else 语句将跳过执行
嵌套的if结构
-
使用嵌套的if ....else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以象if语句一样嵌套 else if....else
-
语法
if(布尔表达式1){
//如果布尔表达式 1 的值为true 执行代码
if(布尔表达式2){
//如果布尔表达式 2 的值为true 执行代码
}
}
switch多选择结构
-
多选择结构还有一个实现方式就是swetch case 语句
-
switch case 语句判断一个变量与一系列值中是否相等,每一个值成为一个分支
-
switch 语句中的变量可以是:
-
byte,short,int或者char
-
从Java SE 7开始switch 支持字符串 String 类型了
-
同时 case 标签必须为字符串常量或字面量
-
-
语法:
switch(espression){//圆括号中可以是输入的变量
case value:
//语句
break;
case value:
//语句
break;
//你可以有任意数量的case语句
default:
//语句
}
列子:
package com.choose;
import java.util.Scanner;
public class ChooseTest3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("强输入你的成绩等级:");
String s = scanner.nextLine();
switch (s){
case "A" :
System.out.println("优秀"); break;
case "B":
System.out.println("良好"); break;
case "C":
System.out.println("及格"); break;
case "D":
System.out.println("再接再厉"); break;
default:
System.out.println("未知等级");
}
scanner.close();
}
}
结果:
强输入你的成绩等级:
B
良好
Process finished with exit code 0
注意点
-
case具有穿透性如果不加break他会接着往下继续走breal表示跳出所在的结构,break尽量写在每一个case后
-
experssion中可以是自己输入的变量
-
case后面的数据的引号要根据你导入的变量是什么而定char 是''号String是""号
-
JDK7以后才支持String类型
-
通过反编译(将class文件丢进IDEA中)可以了解为什么支持String通过hashCode来实现



