需求:
淘宝登录
重复做一件事
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
顺序结构
选择结构
循环结构
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
总的来说:写在前面的先执行,写在后面的后执行
图解:
2.2.选择结构
选择结构
也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
Java语言提供了两种选择结构语句
if语句
switch语句
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
If语句在java中一共有三种格式
第一种格式:
if(关系表达式) {
语句体
}
执行流程:
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
图解:
开发小结:
if语句的注意事项:
A:比较表达式好无论简单还是复杂,结构必须是boolean类型
B:if语句控制的语句体如果是一条语句,大括号可以省略,但是建议,写if的时候,永远不要省略大括号
C: if语句括号中表达式一定布尔类型,== 不要错写成 =
结论1实战:
结论2实战
结论3实战:
思考:上面那种if语句的判断存在什么缺陷?能不能满足所有的需求呢?
if语句第二种格式:
if(关系表达式) {
语句体1;
}else{
语句体2;
}
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2
图解:
未成年判断
淘宝登录
要求:使用Scanner
练习1:判断两个数中的最大值
publicclass TT {
publicstaticvoid main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数");
intnum1 = sc.nextInt();
System.out.println("请输入第二个数");
intnum2 = sc.nextInt();
// 定义一个用来接收的变量
intmax;
if (num1 > num2) {
max = num1;
} else {
max = num2;
}
System.out.println("max:" + max);
}
}
练习2:判断一个数是奇数还是偶数并输出
publicclass Demo4 {
publicstaticvoid main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
intnum = sc.nextInt();
if(num%2==0)
{
System.out.println(num+"是一个偶数");
}
else
{
System.out.println(num+"是一个奇数");
}
}
我们前面讲解过三元运算符,它根据比较判断后,给出的也是两个结果,所以,这种情况和if语句的第二种格式很相似,他们在某些情况下应该是可以相互转换的。那么他们之间是没有一点区别吗?
求出两个数的最大值
publicstaticvoid main(String[] args) {
inta = 10;
intb = 20;
intmax1;
if(a>b)
{
max1 = a;
}
else
{
max1 = b;
}
System.out.println("max1:"+max1);
System.out.println("=========================");
intmax2;
max2 = a>b?a:b;
System.out.println("max2:"+max2);
}
求出奇偶数
publicstaticvoid main(String[] args) {
inta = 100;
if(a%2==0)
{
System.out.println("100是一个偶数");
}
else
{
System.out.println("100是一个奇数");
}
System.out.println("===========================================");
//String str = (a%2==0)?System.out.println("100是一个偶数");:System.out.println("100是一个奇数"); 错误
}
if语句第三种格式:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else{
语句体n+1;
}
l 执行流程
• 首先判断关系表达式1看其结果是true还是false
• 如果是true就执行语句体1
• 如果是false就继续判断关系表达式2看其结果是true还是false
• 如果是true就执行语句体2
• 如果是false就继续判断关系表达式…看其结果是true还是false
• …
• 如果没有任何关系表达式为true,就执行语句体n+1。
图解:
要求:使用Scanner
季节划分
春 3、4、5
夏 6、7、8
秋 9、10、11
冬 12、1、2
public class Demo1 {
public static void main(String[] args) {
// 创建scaner键盘输入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份");
// 接受用户的键盘输入
int month = sc.nextInt();
// 防止用户输入错误的月份
if(month<1 || month>12)
{
System.out.println("月份只能在(1-12)之间");
}
// 根据输入的数字 判断出输出对应的中文 月份
// 春季 3 4 5
else if(month>=3 && month<=5)
{
System.out.println("当前是春季");
}
// 夏季 6 7 8
else if(month>=6 && month<=8)
{
System.out.println("当前是夏季");
}
// 秋季 9 10 11
else if(month>=9&&month<=11)
{
System.out.println("当前是秋季");
}
else
{
System.out.println("当前是冬季");
}
}
}
2)编写程序,根据输入的学生成绩,给出相应的等级,90~100为优秀,80~90为良好,70~80为中等 , 60~70为及格,60分以下记为不及格,
public class Grade {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("输入一个整数:");
int num=scanner.nextInt();
if(num>=90 && num<=100)
System.out.println("优秀");
if(num>=80 && num<90)
System.out.println("良好");
if(num>=70 && num<80)
System.out.println("中等");
if(num>=60 && num<70)
System.out.println("合格");
if(num<60)
System.out.println("不合格");
}
}