Java 程序大体分为三种流程控制结构: 顺序结构, 分支结构, 循环结构
顺序结构
程序由上到下的逐行执行, 中间没有任何跳转和判断语句.
示例代码如下:
- public class TestSortStruc {
- public static void main(String[] args) {
- // 流程控制: 顺序结构
- int i = 15;
- int j = i + 1;
- System.out.println(j);
- /* 错误示例, 因为 n 的赋值语句使用到了 m, 所以不能将 m 在 n 后面定义
- * int n = m + 1;
- int m = 10;
- System.out.println(n);*/
- }
- }
分支结构
根据条件, 选择性的执行某段代码块.
分为 if...else 和 switch..case 两类分支语句.
一, if 语句的三种结构:
1. if(true){
执行代码块;}
示例代码如下:
- public class TestIf1 {
- public static void main(String[] args) {
- if(true){
- System.out.println("Hello World!!");
- }
- }
- }
2. if(条件判断语句){
执行代码块;}
else{
执行代码块;}
示例代码如下:
- public class TestIf2 {
- public static void main(String[] args) {
- int age = 21;
- if(age>18){
- System.out.println("你已经成年了!!");
- }else{
- System.out.println("你还没有成年!!");
- }
- }
- }
3. if(条件判断语句){
执行代码块;}
else if(条件判断语句){
执行代码块;}
......
else{执行代码块;}
- public class TestIf3{
- public static void main(String[] args) {
- int age = 26;
- if(age> 130 || age <0){
- System.out.println("估计不是人吧!!");
- }else if(age <30){
- System.out.println("你还挺年轻!! 只有"+ age +"岁");
- }else{
- System.out.println("我都是孩子他爹了, 你另找心上人吧!!");
- }
- }
- }
通过键盘获取值, 然后使用 if 判断语句进行判断学生成绩, 使用 Scanner 对象, 让用户在控制台输入值
示例代码如下:
- /* 题目:
- * 从键盘输入自己的考试成绩
- * 当成绩为 100 分时, 奖励一台外星人电脑
- * 当成绩在 80~99 时, 奖励一部 iPhone7 plus
- * 当成绩在 60~80 时, 奖励一本考试科目的习题册
- * 成绩低于 60 时, 没有奖励, 需要连续三个月不许玩游戏看电视.*/
- //1. 导入 Scanner 包, 记住一定要是 java.util 下的 Scanner 包
- import java.util.Scanner;
- public class TestScanner {
- public static void main(String[] args) {
- //2.new 一个 Scanner 对象 sc
- Scanner sc = new Scanner(System.in);
- /*3. 从键盘获取用户输入的值, 因为要判断成绩,
- 所以规定输入的值是 int 类型的数字, 使用 nextInt() 方法 */
- System.out.println("请输入你的成绩:");
- int grade = sc.nextInt();
- // 使用 if 判断语句进行成绩奖励判断
- if(grade == 100){
- System.out.println("恭喜你, 获得一台外星人电脑!!");
- }else if(grade < 100 && grade>= 80){
- System.out.println("恭喜你, 获得一部 iPhone7 plus!!");
- }else if(grade <80 && grade>=60 ){
- System.out.println("恭喜你, 你需要完成一本本学科的习题册!!");
- }else{
- System.out.println("很遗憾, 你在未来的三个月不能玩游戏, 看电视!!");
- }
- }
- }
注: 1.if 条件判断之间可以进行嵌套;
2. 1) 如果多个条件之间是 "互斥" 关系, 那么条件语句的顺序是自由的;
2) 如果多个条件之间是 "包含" 关系, 那么要求范围小的条件要写在范围大的条件上面.
二, switch...case 语句:
switch(表达式){
case 常量 1:
语句 1;
break;
case 常量 2:
语句 2;
break;
......
case 常量 n:
语句 n;
break;
default:
语句;
break;
}
根据表达式的值, 选择相应的 case 去判断, 一旦满足 case 条件, 就执行相应 case 下的语句.
switch 后小括号里面的表达式的值的数据类型包含: char,byte,short,int, 枚举, String(JDK1.7 以上才能使用 String 类型).
case 后跟的常量只能为准确的值, 而不能为取值范围.
示例代码如下:
- public class TestSwitch {
- public static void main(String[] args) {
- int i=1;
- switch(i){
- case 0:
- System.out.println("zero");
- break;
- case 1:
- System.out.println("one");
- break;
- case 2:
- System.out.println("one");
- break;
- case 3:
- System.out.println("one");
- break;
- case 4:
- System.out.println("one");
- break;
- default:
- System.out.println("ending");
- break;
- }
- }
- }
注: 如果没有 break 或者已经到结尾的话, 会继续向下执行其他的 case 语句, 如果只想得到某一个值, 需要都加上 break 关键字; default 虽为结尾语句, 但是可以写在 switch 中任何一个 case 前或者后面, 但是不能写进 case 里面, 但是习惯性的放在末尾, default 也可以不写.
循环结构
通过循环条件, 重复性的执行某段代码块, 直到该条件不被满足.
分为 while,do..while,for 循环三种循环语句.
来源: http://www.bubuko.com/infodetail-3072646.html