目录
为了控制程序的执行流程,Java就提供了一些流程控制语句,举例说明一下:
一、顺序结构和Debug调试方法
顺序结构:从上往下,依次执行
public class VariableDemo01{
public static void main(String[] args){
int price = 998;
System.out.println(price);
price=888;
System.out.println(price);
}
}
顺序结构:
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行
执行流程图:
了解完顺序结构后,到IDEA中去演示一下:
public class OrderDemo {
public static void main(String[] args) {
/*
顺序结构语句
*/
System.out.println("开始");
System.out.println("语句1");
System.out.println("语句2");
System.out.println("语句3");
System.out.println("结束");
}
}
Debug的基本使用
为了帮助大家更好的理解程序的执行流程,我们来学习Debug
Debug:是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序
它的两大作用,查看程序执行流程,调试程序。
在讲解操作流程前,说一下:
Debug,又被称为断点调试,断点其实是一个标记,告诉我们从哪里开始查看
知道了Debug被称为断点调试后,Debug的操作流程:
1、如何加断点
选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可。如图:
2、如何运行加了断点的程序
在代码区域右键Debug执行
3、看哪里
看Debugger窗口,看Console窗口
4、点哪里
点(Step Over F8)开始,点(Stop)结束
5、如何删除断点
选择要删除的断点,单击鼠标左键即可。也就是把第一步的动作,再做一次即可。
二、选择结构
选择结构:通过流程控制语句控制语句的运行
例如:QQ界面的登录,填写账号和密码正确,展示好友列表界面。填写账号或者密码有误,提示:你输入的账号或密码不正确。
这段伪代码就是通过选择结构来实现的,实际开发中,类似这种逻辑判断的情况非常常见。
1、if语句
举个例子说明:
红灯行,绿灯停,黄灯亮了等一等;
核心就是逻辑判断,什么样的信号灯做什么;
这就要用到if语句,一起看一下:
格式:
范例:
执行流程:
案例1(交通信号灯):
需求:交通信号灯由红灯、绿灯、黄灯组成,请通过程序实现不同的信号灯给出不同的提示。提示信息:红灯停、绿灯行、黄灯亮了等一等
分析:
1、用哪种类型来表示信号灯的三种状态呢?
2、if语句判断的表达式该怎么写呢?
实现步骤:
1、定义一个boolean类型的变量用来表示信号灯的状态
2、用if语句格式进行多种情况的判断
3、根据不同的情况给出不同的提示信息
知道了实现步骤,下面我们到IDEA中去实现一下:
示例代码:
public class IfTest01 {
public static void main(String[] args) {
boolean isGreen = true;
boolean isRed = true;
boolean isYellow = true;
if (isGreen) {
System.out.println("绿灯行");
} else if (isRed) {
System.out.println("红灯停");
} else if (isYellow) {
System.out.println("黄灯亮了等一等");
} else {
System.out.println("交通信号灯故障,请注意安全");
}
}
}
这里填一下上一篇博客的坑:
关系运算符:
这样案例中的代码可以修改为:
public class IfTest01 {
public static void main(String[] args) {
//定义int变量表示信号灯
int light_Green = 1;
int light_Red = 1;
int light_Yellow = 1;
//进行if判断
if (light_Green == 1) {
System.out.println("绿灯行");
} else if (light_Red == 1) {
System.out.println("红灯停");
} else if (light_Yellow == 1) {
System.out.println("黄灯亮了等一等");
} else {
System.out.println("交通信号灯故障,请注意安全");
}
}
}
案例2(奇偶数):
需求:给定一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数
提示:偶数是能够被2整除的整数
分析:
①如何判断一个整数是奇数还是偶数?(整数对2进行取余,余数为0是偶数,否则为奇数)
②用if语句的哪种格式来实现该需求呢?(该整数要么是偶数,要么是奇数,2种情况,所以用if语句格式)
实现步骤:
①定义一个int类型的整数
②用if语句格式进行判断
③根据是否是偶数给出不同的提示信息
示例代码:
public class IfTest02 {
public static void main(String[] args) {
//定义一个int类型的需要判断的变量
int number = 10;
//判断
if (number % 2 == 0) {
System.out.println(number + "是偶数");
} else {
System.out.println(number + "是奇数");
}
}
}
案例3(手机以旧换新):
需求:张三想买一台7988元的新手机,他的旧手机在二手市场能卖1500元,而手机专卖店推出以旧换新优惠,把他旧手机交给店家,新手机就能够打8折优惠。
为了更省钱,要不要以旧换新?请通过程序告诉张三
分析:
①计算不使用以旧换新的花费7988 - 1500
②计算使用以旧换新的花费7988 * 0.8
③用if语句的哪种格式来实现该需求呢?
实现步骤:
①定义变量(money1)纪录不使用以旧换新的花费
②定义变量(money2)纪录使用以旧换新的花费
③用if语句进行判断money1是否大于money2
④根据判断结果,给出相应的提示
示例代码:
public class IfTest03 {
public static void main(String[] args) {
int money1=7988-1500;//不使用以旧换新的花费
double money2=7988*0.8;//使用以旧换新的花费
//判断
if (money1>money2) {
System.out.println("不使用以旧换新的花费小");
} else {
System.out.println("使用以旧换新的花费花费小");
}
}
}
案例4(你是青年人吗?)
需求:给出你的年龄,通过程序判断你是否属于青年人?
提示:世界卫生组织,经过对全球人体素质和平均寿命进行测定,对年龄划分标准作出了新的规定
(18岁到65岁属于青年人)
分析:
①如何判断一个年龄是否属于青年人?年龄要大于等于18,并且小于等于65
②在Java中如何表示并且的关系呢?
这里继续填坑——逻辑运算符:
逻辑运算符
这样就可以实现并且了:age >=18 && age<=65
实现步骤:
①定义一个int类型的变量来表示你的年龄
②用if语句进行判断看你是否属于青年人
③根据是否是青年人给出不同的提示信息
示例代码:
public class IfTest04 {
public static void main(String[] args) {
//定义一个int类型的变量来表示你的年龄
int age=22;
//age=100;
//判断
if(age>=18&&age<=65){
System.out.println("你是青年人");
}else{
System.out.println("你不是青年人");
}
}
}
说到这里不得不提三元运算符:
三元运算符
格式:关系表达式?表达式1:表达式2;
范例:a > b ? a : b;
执行流程:
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果
了解了三元运算符的执行流程后,下面我们到IDEA中去使用一下:
2、switch语句
格式:
格式说明:
执行流程:
还是交通信号灯案例:
public class SwitchDemo {
public static void main(String[] args) {
int light = 1;
//light=2;
//light=3;
//用switch语句实现交通信号灯案例
switch (light) {
case 1:
System.out.println("红灯停");
break;//别忘了break,不然容易出现case穿透
case 2:
System.out.println("绿灯行");
break;
case 3:
System.out.println("黄灯亮了等一等");
break;
default:
System.out.println("交通信号灯故障,请确认安全再行驶");
break;
}
}
}
最后,有个注意事项:注意:在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break,或者整个switch语句结束