一、介绍
Java流程控制包括顺序控制、条件控制和循环控制。
顺序控制,就是从头到尾依次执行每条语句操作。条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操作A,反之则执行操作B。循环控制,又称为回路控制,根据循环初始条件和终结要求,执行循环体内的操作。
顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。
Java有两种分支结构:
- if语句
- switch语句
Java中有三种主要的循环结构:
- while循环
- do…while循环
- for循环
二、笔记
1 package com.simon.study; 2 3 import java.util.Scanner; 4 5 /** 6 * java的流程控制:顺序结构 分之机构 循环结构 7 * 8 * @author Simon 顺序结构:通过debug模式可以看出java程序的运行时顺序结构的 9 * 10 * 分支结构:if语句 11 * 12 */ 13 public class ProcessControl { 14 15 public static void main(String[] args) { 16 // IfStudy(); 17 // SwitchCaseStudy(); 18 // WhileStudy(); 19 } 20 21 /* 22 * IF语句 23 */ 24 private static void IfStudy() { 25 26 /* 27 * 根据条件表达的世界(true||false)来判断是否进入语句块 if(条件表达式){ 语句块 } 继续执行后面的语句 28 */ 29 int i = 100; 30 if (i > 60) { 31 System.out.println(i); 32 } 33 System.out.println("后面需要执行的语句"); 34 35 /* 36 * if else 语句 37 */ 38 39 // system.in就是标准输入,可以获取从键盘输入的值 40 // 通过scanner(jdk提供给我们的工具)来处理获取到的数据 41 System.out.println("请输入分数!"); 42 Scanner sc = new Scanner(System.in); 43 44 int j = sc.nextInt();// 把用户输入的数赋值给j 45 System.out.println("控制台获取到的值是:" + j); 46 47 if (j > 60) { 48 System.out.println("通过"); 49 } else { 50 System.out.println("没通过"); 51 } 52 System.out.println("当if else 执行后需要执行的内容"); 53 54 /* 55 * if else if else if ...else 56 */ 57 // 场景:将一个5(score)分制分为 :5分的评价等级A 4==B 3==C 其他是D 58 Scanner sca = new Scanner(System.in); 59 int score = sca.nextInt(); 60 if (score >= 0 && score <= 5) { 61 if (score == 5) { 62 System.out.println("A"); 63 } else if (score == 4) { 64 System.out.println("B"); 65 } else if (score == 3) { 66 System.out.println("C"); 67 } else { 68 System.out.println("D"); 69 } 70 } else { 71 System.out.println("输入不合法"); 72 } 73 74 /* 75 * 练习:百分制系统 90-100 优秀 75-89 良好 60-74 合格 其他 不合格 76 */ 77 Scanner scan = new Scanner(System.in); 78 int score1 = scan.nextInt(); 79 if (score1 >= 0 && score1 <= 100) { 80 if (score1 >= 90 && score1 <= 100) { 81 System.out.println("优秀"); 82 } else if (score1 >= 75) { 83 System.out.println("良好"); 84 } else if (score1 >= 60) { 85 System.out.println("合格"); 86 } else { 87 System.out.println("不合格"); 88 } 89 } else { 90 System.out.println("输入不合法"); 91 } 92 93 } 94 95 /* 96 * switch case 97 */ 98 private static void SwitchCaseStudy() { 99 100 /* 101 * 分支语句:switch case key:需要比较的表达式 value:与表达式进行比较的值 102 * 执行流程:如果key和value比较的结果为true,那么将执行case部分的代码,case部分可以有多个 类似于else if 部分 103 * 区别是key和value之间的比较只能是== default部分是不满足以上任何去执行的代码 ,类似于else 104 * 105 * switch 后面括号中的表达式的值必须是符合byte,char,short,int类型的常量表达式 jdk1.7以后可以使用string 106 * ,而不能用浮点型或long类型 107 * 108 * switch(key) { case value: break; default: break; } 109 */ 110 111 // 场景:将一个5(score)分制分为 :5分的评价等级A 4==B 3==C 其他是D 112 Scanner sc = new Scanner(System.in); 113 int score = sc.nextInt(); 114 switch (score) { 115 case 5: 116 System.out.println("A"); 117 break;// 标准写法 break不能少 跳出当前语句块,如果没有break会直接进入下一个case语句 118 case 4: 119 System.out.println("B"); 120 break; 121 case 3: 122 System.out.println("C"); 123 break; 124 default: 125 System.out.println("D"); 126 break; 127 } 128 } 129 130 /* 131 * while 循环和do while 132 */ 133 private static void WhileStudy() { 134 135 /* 136 * 执行流程: 当条件表达式为true的时候进入代码块,执行需要执行的代码 当条件表达式为false的时候执行后面的语句 137 * 138 * while(条件表达式){ 需要执行的代码部分 } 后面的语句 139 */ 140 141 /* 142 * 场景:输入1-100的整数分析:给输出的值一个变量I,当i在1-100之间的时候输出 143 */ 144 int i = 1;// 循环的起点 145 while (i <= 100) { 146 System.out.println(i); 147 // 给出循环的步长 148 i++; 149 } 150 System.out.println("打印结束"); 151 152 153 /* 154 * do while 155 * 156 * do{ 157 * }while(条件表达式) 158 */ 159 160 int a=1; 161 do{//语句块中的内容无论条件是否满足都会先执行一次 162 System.out.println(a); 163 a++; 164 } 165 while(a<=0); 166 167 } 168 169 /* 170 * for循环 171 */ 172 private static void ForStudy() { 173 174 /* 175 * 场景:打印1-100 int i=1是循环的起点 i++ 循环的补偿 i<=100 循环的条件 176 */ 177 for (int i = 1; i <= 100; i++) { 178 System.out.println(i); 179 } 180 System.out.println("打印结束"); 181 } 182 }