1.流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果又直接的影响。所以,我们必须清楚每条语句的执行流程。而且,有时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
流程控制语句分类:顺序结构,选择结构和分支结构。
2.顺序结构
顺序结构是最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中的大多数代码就是这样执行的。
总的来说:写在前面的先执行,写在后面的后执行。
3.选择结构
也被称为分支结构。选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
java语言提供了两种选择结构语句:if语句和switch语句。
4.选择结构之if语句
格式一:
if(布尔表达式){ 语句体; }
执行流程:1)首先判断布尔表达式的结果是true还是false 2)如果是true就执行语句体 3)如果是false,就不执行语句体。
import java.util.Scanner; /** * 选择结构: * if语句和switch语句 * if语句有三种格式 * 1)if(布尔表达式){ * 语句体; * } * 执行流程:先计算布尔表达式的值,看其返回值是true还是false。 * 如果是true,就执行语句体; * 如果是false,就不执行语句体; * 2) */ public class IfDemo1 { public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.print("请输入第一个数字:"); int num1 = input.nextInt(); System.out.print("\n请输入第二个数字:"); int num2 = input.nextInt(); if(num1 == num2){ System.out.println(num1+"和"+num2+"的值相等"); } } }
注意事项:1.布尔表达式无论简单还是复杂,结果必须是boolean类型 2.if语句控制的语句体,如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。强烈建议永远不要省略,为了便于阅读。
格式二:
if(布尔表达式){ 语句体1; }else{ 语句体2; }
执行流程:1.首先判断布尔表达式结果是true还是false 2.如果是true,就执行语句体1 3.如果是false,就执行语句体2。
import java.util.Scanner; /** * 选择结构: * if语句和switch语句 * if语句有三种格式 * 1)if(布尔表达式){ * 语句体; * } * 执行流程:先计算布尔表达式的值,看其返回值是true还是false。 * 如果是true,就执行语句体; * 如果是false,就不执行语句体; * 2)if(布尔表达式){ * 语句体1; * }else{ * 语句体2; * } * 执行流程:先计算布尔表达式的值,看其返回值是true还是false。 * 如果是true,就执行语句体1; * 如果是false,就执行语句体2; */ public class IfDemo1 { public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.print("请输入第一个数字:"); int num1 = input.nextInt(); System.out.print("\n请输入第二个数字:"); int num2 = input.nextInt(); if(num1 == num2){ System.out.println(num1+"和"+num2+"的值相等"); }else{ System.out.println(num1+"和"+num2+"的值不相等"); } } }
注意事项:else后面是没有布尔表达式的,之后if后面才有哦。
格式三:
if(布尔表达式1){ 语句体1; }else if(布尔表达式2){ 语句体2; }else{ 语句体n; }
执行流程:1)首先会判断布尔表达式1,看其结果是true还是false 。2)如果是true就执行语句体1 。3)如果是false,就继续判断布尔表达式2,看其结果是true还是false。4)如果是true,执行语句体2。4)如果是false就继续判断布尔表达式,看其结果是true还是false。……5)如果没有任何布尔表达式为true,就执行else中的语句体。
import java.util.Scanner; /** * 选择结构: * if语句和switch语句 * if语句有三种格式 * 1)if(布尔表达式){ * 语句体; * } * 执行流程:先计算布尔表达式的值,看其返回值是true还是false。 * 如果是true,就执行语句体; * 如果是false,就不执行语句体; * 2)if(布尔表达式){ * 语句体1; * }else{ * 语句体2; * } * 执行流程:先计算布尔表达式的值,看其返回值是true还是false。 * 如果是true,就执行语句体1; * 如果是false,就执行语句体2; * 3)if(布尔表达式1){ * 语句体1; * }else if(布尔表达式2){ * 语句体2; * }else{ * 语句体3; * } * 执行流程:先计算布尔表达式1,看其返回值是true还是false * 如果是true,那么就执行语句体1; * 如果是false,继续判断布尔表达式2,看其返回值是true还是false * 如果是true,那么久执行语句体2; * 如果是false,那么执行语句体3; */ public class IfDemo1 { public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.print("请输入第一个数字:"); int num1 = input.nextInt(); System.out.print("\n请输入第二个数字:"); int num2 = input.nextInt(); if(num1 == num2){ System.out.println(num1+"和"+num2+"的值相等"); }else{ System.out.println(num1+"和"+num2+"的值不相等"); } System.out.println(10>20?"10大":"20大"); int score = 88; if(score <=100 && score >90){ System.out.println("优秀"); }else if(score <=89 && score >80){ System.out.println("好"); }else if(score <=80 && score >70){ System.out.println("良"); }else if(score <=70 && score >60 ){ System.out.println("及格"); }else{ System.out.println("不及格"); } } }