JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行
顺序结构就是最简单的算法结构
public class Demo { public static void main(String[] args) { System.out.println("halle1"); System.out.println("halle2"); System.out.println("halle3"); System.out.println("halle4"); } }
也是因为最简单都很容易忽略的一个结构
语句与语句之间,框与框之间是按从上到下的顺序进行,它是由若干个依次执行的处理步骤组成的,**它是任何一个算法都离不开的一种基本算法结构
if单选结构
if双选结构
if多选结构
嵌套的if结构
switch多选结构
我们很多时候需要去判断一个东西是否可执行,然后我们才去执行,这样一个过程中用if语句来表示
语法:
if(布尔表达式){ //如果不二表达式为true将执行这个语句 }
我们在代码中演示一下,我们判断一下如果输出字符Hello,则输出如果不是则输出End
import java.util.Scanner; public class Demo { 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(); } }
现在有一个需求,需要判断一个学生的成绩是否及格小于60分为不及格,大于等于六十分为及格。我们需要有两个判断,需要一个双选择结构,所以就有了if else结构
语法:
if(布尔表达式){ //如果布尔表达式为true执行该语句 }else{ //如果布尔表达式为false执行该语句 }
我们来实现一下这个需求
import java.util.Scanner; public class Demo{ public static void main(String[] args) { //考试分数大于六十分就是及格小于六十就是不及格 Scanner scanner = new Scanner(System.in); System.out.println("请输入分数"); double v = scanner.nextDouble(); if(v<60){ //判断分数小于六十为不及格 System.out.println("不及格"); }else{ //否则为及格 System.out.println("及格"); } scanner.close(); } }
我们发现刚才的代码不符合实际情况,真是的情况我们还可能存在优,良,中,差,存在区间多级判断。比如100为满分,80~100为优等等,在生活中很多时候我们的选择也不仅仅有两个,所以我们需要一个多项选择结构来处理这类问题
语法:
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) { Scanner scanner = new Scanner(System.in); System.out.println("请输入分数"); double v = scanner.nextDouble(); if(v==100){ //输入100输出恭喜满分 System.out.println("恭喜满分"); }else if(v>=80&&v<100){ //80~100输出优 System.out.println("优"); }else if(v>=60&&v<80){ //60~80输出良 System.out.println("良"); }else if(v>=0&&v<60) { //0~60不及格 System.out.println("不及格"); }else { System.out.println("成绩不合法"); } scanner.close(); } }
这样我们输入相应的数据就可以得到更为准确的判断
注意
if语句至多有一个 else 语句,else 语句是在所有的 else if 语句之后
if语句可以有若干个 else if 语句,他们必须在 else 语句之前,一旦其中一个 else if 语句检测为 true 。其他的 else if 和 else 语句都将跳过执行
为了我们的程序更严谨我们需要多个判断以减少bug
使用if...else 语句是合法的。也就是说你可以在另一个 if 或者 else if 中使用 if 或者 else if 语句,你可以像 if 语句一样嵌套 else if ...else
语法:
if(布尔表达式1){ //如果布尔表达式1的值为true执行代码 if(布尔表达式2){ //如果布尔表达式2的值为true执行代码 } }
多选择结构还有一个实现方式就是switch case 语句
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支,也就是在switch中输入一个值,他与下面某一个case相等就输出它后面的语句,中间用break隔开,如果中间没有break,它会把后面case中的语句都输出,没有一个case中的值满足就输出default中的语句
语法:
switch(expression){ case value: //语句 break;//可选 case value: //语句 break;//可选 //你可以有任意数量的case语句 default://可选 //语句 }
演示,我们定义一个字符当字符输入a时输出优秀,b时输出良好,c时输出及格,d时输出再接再励,e时输出挂科,如果不是输入这些则输出未知
public class IfDemo04 { public static void main(String[] args) { //case 穿透 如果没有break 它匹配到之后会一直输出 char grade = 'a'; //switch匹配一个具体的值 switch (grade){ 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("未知"); } } }
switch 语句中的变量类型可以是:
byte,short,int或者char
从Java SE 7开始
switch 支持字符串String 类型了
同时case标签必须为字符串常量或者字面量