程序中最经典的三种执行顺序
一、分支结构
1、if分支(三种模式)
package com.itheima.branch;
public class ifDome1 {
public static void main(String[] args) {
double t = 38;
if(t > 37){
System.out.println("温度异常");
}
double money = 19;
if(money >=90){
System.out.println("发红包成功");
}else{
System.out.println("余额不足");
}
int score = 101;
if(score<60 & score>=0){
System.out.println("D");
}else if(score>=60 & score<80){
System.out.println("C");
}else if(score>=80 & score<90){
System.out.println("B");
}else if(score>=90 & score<=100){
System.out.println("A");
}else{
System.out.println("您录入的分数有问题");
}
}
}
2.Switch分支
switch分支的执行流程
①先执行表达式的值,再拿着这个值去与case后的值进行匹配。
②与哪个case后的值匹配为true就执行哪个case块的代码,遇到break就跳出switch分支。
③如果全部case后 的值与之匹配都是false,则执行default块的代码。
package com.itheima.branch;
public class SwitchDome2 {
public static void main(String[] args) {
String week = "周三";
switch (week){
case "周一":
System.out.println("埋头苦干,解决bug");
break;
case "周二":
System.out.println("今晚吃鸡");
break;
case "周三":
System.out.println("请求大牛程序员帮忙");
break;
case "周四":
System.out.println("主动帮助新来的女程序解决bug");
break;
case "周五":
System.out.println("请求大牛程序员帮忙");
break;
case "周六":
System.out.println("与王婆介绍的小芳相亲");
break;
case "周日":
System.out.println("郁郁寡欢、准备上班。");
break;
default:
System.out.println("输入有误");
break;
}
}
}
if、switch的比较,以及各自适合什么业务场景?
●if在功能上远远强大于switch。
●当前条件是区间的时候,应该使用if分支结构。
●当条件是与一个一个的值比较的时候,switch分支更合适: 格式良好,性能较好,代码优雅。
使用switch分支的几点注意事项
①表达式类型只能是byte、short、 int、 char, JDK5开始支持枚举,JDK7开始支持String、不支持double(会有不精确的现象)、float、 long。
②case给出的值不允许重复,且只能是字面量,不能是变量(怕和其他CASE数值重复)。
③正常使用switch的时候,不要忘记写break,否则会出现穿透现象(但如果上下CASE一样可以省略break简化代码)。
二、循环结构
1.for循环
for循环案例详细流程说明
//输出3次Helloworld
for(int i=0;i<3;i++){
System. out . println( "Hello World");
执行的流程:
①循环--开始,执行int i=0一次。
②此时i=0 ,接着计算机执行循环条件语句: 0< 3返回true ,计算机就进到循环体中执行,输出: helloWorld,然后执行迭代语句i++。
③此时 i=1,接着计算机执行循环条件语句: 1 < 3返回true ,计算机就进到循环体中执行,输出: helloWorld ,然后执行迭代语句i++。
④此时 i=2 ,接着计算机执行循环条件语句: 2< 3返回true ,计算机就进到循环体中执行,输出: helloWorld,然后执行迭代语句i++。
⑤此时i=3 ,然后判断循环条件: 3< 3返回false,循环立即结束! !
2.while循环
1、while循环的格式,执行流程是怎么样的?
初始化语句;
while (循环条件) {
循环体语句;
迭代语句;
}
2、while和for有什么区别?什么时候用for,什么时候用while?
●功能上是完全一样的, for能解决的while也能解决,反之亦然。
●使用规范:知道循环几次:使用for;不知道循环几次建议使用: while。
3.do-while循环
初始化语句;
do {
循环体语句;
迭代语句;
} while (循环条件);
do-while循环的特点:
●先执行后判断。
三种循环的区别小结
●for循环和while循环( 先判断后执行) ; do...while ( 先执行后判断)
●for循 环和while循环的执行流程是一模一样的, 功能上无区别,for能做的while也能做,反之亦然。
●使用规范:如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
●其他区别: for循环中,控制循环的变量只在循环中使用。while循环中,控制循环的变量在循环后还可以继续使用。
4.死循环
for(;;){
System.out.println( "He1lo World1");}
//经典写法
while (true) {
System.out.println("He11o Wor1d2");}
do {
System.out.println("He1lo World3"); } while (true);
应用场景:服务器程序
5.循环嵌套
●循环中又包含循环。
for(inti=0;i<3;i++){
for(intj=0;j<5;j++){
System. out. println( "我爱你");
}
}
循环嵌套的特点
●外部循环每循环一次,内部循环会全部执行完一轮。
三、跳转关键字: break、continue
跳转关键字
●break :跳出并结束当前所在循环的执行。
●continue: 用于跳出当前循环的当次执行,直接进入循环的下一次执行。
注意事项
break :只能用于结束所在循环,或者结束所在switch分支的执行。
continue :只能在循环中进行使用。
package com.itheima.loop;
public class BreakContinueDemo1 {
public static void main(String[] args) {
for (int i = 1;i<=5; i++){
System.out.println("I love you" +i);
if (i >= 3){
break;
}
}
for (int i = 1;i<=5; i++){
if (i == 3){
continue;
}
System.out.println("I love you" +i);
}
}
}
四、案例技术:生成随机数
Random的使用
1. Random生成随机数需要几步?
●导包: import java.util.Random;
●Random r = new Random();
●int number = r.nextInt(10);
2.如何生成65-91之间的随机数?
●65-91 => -65=> (0-26) + 65
●int number = r.nextlnt(27)+ 65;
package com.itheima.random;
import java.util.Random;
public class RandomDemo1 {
public static void main(String[] args) {
Random r = new Random();
for (int i =1 ;i <=20;i++) {
int number = r.nextInt(10);
System.out.println("随机数为:"+ number);
}
}
}
猜数字游戏
五、总结