流程控制语句:java
在一个程序执行过程当中,各条件语句的执行顺序的结果会有直接影响的。
1、顺序结构
代码库:Demo01Sequence.javaide
// 顺序结构 public class Demo01Sequence { public static void main(String[] args) { System.out.println("今每天气不错"); System.out.println("挺风和日丽的"); System.out.println("咱们下午没课"); System.out.println("这的确挺爽的"); } }
流程图 oop
顺序结构流程图code
2、判断语句
2.一、if语句第一种格式:blog
/* 首先判断关系表达式看其结果是true仍是false 若是是true就执行语句体 若是是false就不执行语句体 if(关系表达式){ 语句体; }
单if语句流程图:图片
代码库:Demo02If.java字符串
// 单if语句 public class Demo02If { public static void main(String[] args) { System.out.println("今每天气不错,正在压马路……忽然发现一个快乐的地方:网吧"); int age = 19; if (age >= 18) { System.out.println("进入网吧,开始high!"); System.out.println("遇到了一群猪队友,开始骂街。"); System.out.println("感受不爽,结帐走人。"); } System.out.println("回家吃饭"); } }
2.二、判断if..else语句
if语句的第二种格式:if......elseit
/* 首先判断关系表达式看其结果是true仍是false 若是是true就执行与具体1 若是是false 就执行与具体2 */ if (关系表达式);{ 语句体1; }else{ 语句体2; }
if....else语句流程图for循环
代码库:Demo03IfElse.javaclass
// 标准的if-else语句 public class Demo03IfElse { public static void main(String[] args) { int num = 666; if (num % 2 == 0) { // 若是除以2可以余数为0,说明是偶数 System.out.println("偶数"); } else { System.out.println("奇数"); } } }
2.三、判断语句(复合扩展的if语句)
if语句第三种格式:if....else if.....else
/* 首先判断关系表达式1看其结果是true仍是false 若是是true就执行语句体1 若是是false就继续判断关系表达式2看其结果是true仍是false 若是我是true就执行语句体2 若是是false就继续判断关系表达式....看其结果是true仍是false .... 若是没有任何表达式为true,就执行语句体n+1. */ if (判断条件1){ 执行语句1; }else if(判断条件2){ 执行语句2; } ... }else if (判断条件n){ 执行语句n; }else{ 执行语句n+1; }
if...else扩展流程图
代码库:Demo04IfElseExt.java
// x和y的关系知足以下: // 若是x >= 3,那么y = 2x + 1; // 若是-1 < x < 3,那么y = 2x; // 若是x <= -1,那么y = 2x – 1; public class Demo04IfElseExt { public static void main(String[] args) { int x = -10; int y; if (x >= 3) { y = 2 * x + 1; } else if (-1 < x && x < 3) { y = 2 * x; } else { y = 2 * x - 1; } System.out.println("结果是:" + y); } }
案例一:
代码库:Demo05IfElsePractise.java
/* 制定考试成绩,判断成绩的等级; 90-100 优秀 80-89 好 70-79 良 60-69 及格 60如下 不及格 */ public class Demo05IfElsePractise { public static void main(String[] args) { int score = 120; if (score >= 90 && score <= 100) { System.out.println("优秀"); } else if (score >= 80 && score < 90) { System.out.println("好"); } else if (score >= 70 && score < 80) { System.out.println("良"); } else if (score >= 60 && score < 70) { System.out.println("及格"); } else if (score >= 0 && score < 60) { System.out.println("不及格"); } else { // 单独处理边界以外的不合理状况 System.out.println("数据错误"); } } }
2.四、if语句和三元运算符的互换:
代码库:Demo06Max.java
// 题目:使用三元运算符和标准的if-else语句分别实现:取两个数字当中的最大值 public class Demo06Max { public static void main(String[] args) { int a = 105; int b = 20; // 首先使用三元运算符 // int max = a > b ? a : b; // 使用今天的if语句 int max; if (a > b) { max = a; } else { max = b; } System.out.println("最大值:" + max); } }
3、switch选择语句:
3.一、选择结构_标准的switch语句
// switch 语句格式 /* 首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程当中,入到break就会结束 最后,若是全部的case都和表达式的值不匹配,就会执行default语句体部分,而后程序结束掉。 */ switch(表达式){ case 常量值1: 语句体1; break; case 常量值2: 语句体2; break; ... default: 语句体n+1; break; }
代码库:Demo07Switch.java
public class Demo07Switch { public static void main(String[] args) { int num = 10; switch (num) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期日"); break; default: System.out.println("数据不合理"); break; // 最后一个break语句能够省略,可是强烈推荐不要省略 } } }
3.二、case穿透性:
代码库:Demo08SwitchNotice.java
/* switch语句使用的注意事项: 1. 多个case后面的数值不能够重复。 2. switch后面小括号当中只能是下列数据类型: 基本数据类型:byte/short/char/int 引用数据类型:String字符串、enum枚举 3. switch语句格式能够很灵活:先后顺序能够颠倒,并且break语句还能够省略。 “匹配哪个case就从哪个位置向下执行,直到遇到了break或者总体结束为止。” */ public class Demo08SwitchNotice { public static void main(String[] args) { int num = 2; switch (num) { case 1: System.out.println("你好"); break; case 2: System.out.println("我好"); // break; case 3: System.out.println("你们好"); break; default: System.out.println("他好,我也好。"); break; } // switch } }
4、循环语句、
4.一、for循环
代码库:Demo09For.java
/* 循环结构的基本组成部分,通常能够分红四部分: 1. 初始化语句:在循环开始最初执行,并且只作惟一一次。 2. 条件判断:若是成立,则循环继续;若是不成立,则循环退出。 3. 循环体:重复要作的事情内容,若干行语句。 4. 步进语句:每次循环以后都要进行的扫尾工做,每次循环结束以后都要执行一次。 */ public class Demo09For { public static void main(String[] args) { for (int i = 1; i <= 100; i++) { System.out.println("我错啦!原谅我吧!" + i); } System.out.println("程序中止"); } }
/* for循环语句格式: for (初始化表达式1;布尔表表达式2,步进表达式3){ 循环体4 } 执行流程: 执行顺序:1234>234>234....2不知足位置。 1负责完成循环变量初始化 2负责判断知足循环条件,不知足则跳出循环 3具体执行的语句 4循环后,循环条件所涉及变量的变化状况 */
for循环初始图
4.二、while循环
代码库:Demo10While.java
/* while循环有一个标准格式,还有一个扩展格式。 标准格式: while (条件判断) { 循环体 } 扩展格式: 初始化语句; while (条件判断) { 循环体; 步进语句; } */ public class Demo10While { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.println("我错啦!" + i); } System.out.println("================="); int i = 1; // 1. 初始化语句 while (i <= 10) { // 2. 条件判断 System.out.println("我错啦!" + i); // 3. 循环体 i++; // 4. 步进语句 } } }
while循环标准格式
4.3:do while循环语句:
代码库:Demo11DoWhile.java
/* do-while循环的标准格式: do { 循环体 } while (条件判断); 扩展格式: 初始化语句 do { 循环体 步进语句 } while (条件判断); */ public class Demo11DoWhile { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { System.out.println("原谅你啦!起来吧!地上怪凉!" + i); } System.out.println("==============="); int i = 1; // 1. 初始化语句 do { System.out.println("原谅你啦!起来吧!地上怪凉!" + i); // 3. 循环体 i++; // 4. 步进语句 } while (i <= 10); // 2. 条件判断 } }
do while循环结构图
实例一:
代码库:Demo12HundredSum.java
/* 题目:求出1-100之间的偶数和。 思路: 1. 既然范围已经肯定了是1到100之间,那么我就从一、二、3……一直到100这么多数字一个一个进行检查。 2. 总共有100个数字,并不是全部数字都能用。必需要是偶数才能用,判断(if语句)偶数:num % 2 == 0 3. 须要一个变量,用来进行累加操做。也就比如是一个存钱罐。 */ public class Demo12HundredSum { public static void main(String[] args) { int sum = 0; // 用来累加的存钱罐 for (int i = 1; i <= 100; i++) { if (i % 2 == 0) { // 若是是偶数 sum += i; } } System.out.println("结果是:" + sum); } } //结果是:2550
4.四、do、for、while三种循环的区别
代码库:Demo13LoopDifference.java
/* 三种循环的区别。 1. 若是条件判断历来没有知足过,那么for循环和while循环将会执行0次,可是do-while循环会执行至少一次。 2. for循环的变量在小括号当中定义,只有循环内部才可使用。while循环和do-while循环初始化语句原本就 在外面,因此出来循环以后还能够继续使用。 */ public class Demo13LoopDifference { public static void main(String[] args) { for (int i = 1; i < 0; i++) { System.out.println("Hello"); } // System.out.println(i); // 这一行是错误写法!由于变量i定义在for循环小括号内,只有for 循环本身才能用。 System.out.println("================"); int i = 1; do { System.out.println("World"); i++; } while (i < 0); // 如今已经超出了do-while循环的范围,咱们仍然可使用变量i System.out.println(i); // 2 } }
4.五、条件控制语句:跳出语句:break continue
break
代码库:Demo14Break.java
/* break关键字的用法有常见的两种: 1. 能够用在switch语句当中,一旦执行,整个switch语句马上结束。 2. 还能够用在循环语句当中,一旦执行,整个循环语句马上结束。打断循环。 关于循环的选择,有一个小建议: 凡是次数肯定的场景多用for循环;不然多用while循环。 */ public class Demo14Break { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { // 若是但愿从第4次开始,后续全都不要了,就要打断循环 if (i == 4) { // 若是当前是第4次 break; // 那么就打断整个循环 } System.out.println("Hello" + i); } } }
continue一旦执行,马上跳过当前次循环,立刻开始下一次循环。
代码库:Demo15Continue.java
/* 另外一种循环控制语句是continue关键字。 一旦执行,马上跳过当前次循环剩余内容,立刻开始下一次循环。 */ public class Demo15Continue { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { if (i == 4) { // 若是当前是第4层 continue; // 那么跳过当前次循环,立刻开始下一次(第5层) } System.out.println(i + "层到了。"); } } }
5、扩展知识:
5.一、死循环
代码库:Demo16DeadLoop.java
/* 永远停不下来的循环,叫作死循环。 死循环的标准格式: while (true) { 循环体 } */ public class Demo16DeadLoop { public static void main(String[] args) { while (true) { System.out.println("I Love Java!"); } // System.out.println("Hello"); //Ctrl+c 中止下来 } }
5.二、循环的嵌套
代码库:Demo17LoopHourAndMinute.java
public class Demo17LoopHourAndMinute { public static void main(String[] args) { for (int hour = 0; hour < 24; hour++) { // 外层控制小时 for (int minute = 0; minute < 60; minute++) { // 内层控制小时以内的分钟 System.out.println(hour + "点" + minute + "分"); } } } }