Java流程控制(二)
顺序结构
-
顺序结构是Java的基本结构,没有特殊标注(循环之类的)默认是顺序结构
-
从上往下一步一步去走
public class struct { public static void main(String[] args) { int a=0; int b=2; int c=3; int x=0; x=a+b; System.out.println(x); x=a+c; System.out.println(x); x=b+c; System.out.println(x); } } 输出: 2 3 5
if选择结构
-
if选择结构用来进行判断
-
一个if语句中最多只能有一个else,但可以有多个else if
if(x){ System.out.println("a"); } //如果x为真(true)则输出a(执行大括号里的操作),如果x为假(false),则不输出a if(a==b){ System.out.println("a"); } //如果a等于b,则为true则输出a(执行大括号里的操作),如果a不等于,b则为false,则不输出a if(a==b && b==c){ System.out.println("a"); } //如果a等于b并且b等于c,则为true则输出a,如果a不等于b或b不等于c则为false,则不输出a if(a==b || b==c){ System.out.println("a"); } //如果a等于b或b等于c,则为true则输出a,如果a不等于b并且b不等于c则为false,则不输出a
if(x){ System.out.println("a"); }else if (s){ System.out.println("b"); }else if (y){ System.out.println("c"); } //从上往下判断 //如果x为true,则输出a(执行大括号里的操作),且之后的else if判断不再执行 //如果x为false但s为true,则输出b,且之后的else if判断不再执行 //如果x为false且s为false,但y为true,则输出c
if(x){ System.out.println("a"); }else{ System.out.println("b"); } //从上往下判断 //如果x为true,则输出a(执行大括号里的操作),且之后的else if判断不再执行 //如果x为false,则输出b
if(x){ System.out.println("a"); }else if (s){ System.out.println("b"); }else if (y){ System.out.println("c"); }else{ System.out.println("d"); } //从上往下判断 //如果x为true,则输出a(执行大括号里的操作),且之后的else if判断不再执行 //如果x为false但s为true,则输出b,且之后的else if判断不再执行 //如果x为false且s为false,但y为true,则输出c,且之后的else不再执行 //如果x为false且s为false且y为false,则输出d
-
嵌套if语句
if(x){ System.out.println("a"); if(y){ System.out.println("b"); } } //从上往下,从外向里进行判断 //如果x为true且y为false则输出a,如果x为true,y为true,则不输出a //如果x为true,y为true,输出a和b //如果x为false,y为true,不输出 //如果x为false,y为false,不输出
switch多选择结构
-
通过switch case实现多选择
-
switch中的变量支持byte、short、int、char、String(从Java SE 7开始支持String)
-
case里通过break停止执行(case穿透现象:不加break的话会将后面的东西全部输出,并且会执行default(如果有的话))
-
可加可不加:
default:当case都没有判断成功,则执行default里的内容;
当case执行成功了但没有加break停止,则也会执行default里的内容
//输入s,并将s赋值给grade Scanner s = new Scanner(System.in); String grade = s.nextLine(); s.close(); //判断 switch (grade){ case "A": System.out.println("优秀"); break; case "B": System.out.println("良好"); break; case "C": System.out.println("差"); break; } //当grade等于A时,输出优秀 //当grade等于B时,输出良好 //当grade等于C时,输出差
//输入s,并将s赋值给grade Scanner s = new Scanner(System.in); String grade = s.nextLine(); s.close(); //判断 switch (grade){ case "A": System.out.println("优秀"); break; case "B": System.out.println("良好"); break; case "C": System.out.println("差"); break; default: System.out.println("无"); } //当grade等于A时,输出“优秀” //当grade等于B时,输出“良好” //当grade等于C时,输出“差” //当grade不等于A,B,C时,输出“无”
//如果没有break,会导致全部输出,连 default的值也会输出(case穿透现象) //输入s,并将s赋值给grade Scanner s = new Scanner(System.in); String grade = s.nextLine(); s.close(); //判断 switch (grade){ case "A": System.out.println("优秀"); case "B": System.out.println("良好"); case "C": System.out.println("差"); default: System.out.println("无"); } //当grade等于A时,输出“优秀 良好 差 无” //当grade等于B时,输出“良好 差 无” //当grade等于C时,输出“差 无” //当grade不等于A,B,C时,输出“无”
用idea反编译
-
反编译:class文件转回java文件
-
方式:
将class文件直接从文件夹放入idea的文件里查看即可