一、顺序结构
1、概念:
Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行
2、用法
代码
package OrderDemo;
public class OrderDemo1 {
public static void main(String[] args) {
//1.默认的顺序结构
System.out.println("山茶花");
System.out.println("白玫瑰");
System.out.println("朱砂痣");
}
}
结果
二、分支结构
(一)、if语句
1、格式一
(1)注意:
i.大括号的开头可以另起一行,但是建议写在第一行末尾
ii.语句体如果只有一句代码,大括号可以省略
(但有的是多句结合为一句,所以建议任何时候都不省略大括号)
iii.r如果对一个布尔类型的变量进行判断,不要用 ==
(2)练习:
代码:
package OrderDemo;
import java.util.Scanner;
public class IfDemo1 {
public static void main(String[] args) {
/*题目:
*键盘录入身高,如果大于180,给出回应"喜欢!!",
* 反之不回应
*/
//格式:
//if(关系表达式){
//语句体;
// }
//1.键盘加入身高
Scanner sc = new Scanner(System.in);
System.out.println("请输入身高");
int height = sc.nextInt();
//2.对身高进行判断
if(height >180){
System.out.println("喜欢!!");
}
}
}
结果:
2、格式二
(1)用法:在实际开发中,如果要根据两个不同的情况来执行不同的代码,用第二种格式
(2)练习1:
假设用户在超市实际购买商品,总价为600元。键盘录入一个整数表示用户实际支付的钱。如果付款大于600,则付款成功,否则失败。
代码:
package OrderDemo;
import java.util.Scanner;
public class IfDemo2 {
public static void main(String[] args) {
/*题目:假设用户在超市实际购买商品,
*总价为600元。
*键盘录入一个整数表示用户实际支付的钱。
*如果付款大于600,则付款成功,否则失败。
*/
//1.键入一个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
//2.判断条件
if(number > 600) {
System.out.println("付款成功");
} else {
System.out.println("付款失败");
}
}
}
结果:
(3)练习2:
假设某影院售卖了100张票,票的序号为1~100。其中奇数票号坐在左侧,偶数票号坐在右侧。键盘录入一个整数代表票号。根据不同情况给出提示:
如果票号为奇数,就打印坐左边。如果票号为偶数,就打印坐右边。
代码:
package test;
import java.util.Scanner;
public class test4 {
public static void main(String[] args) {
/*题目:
*假设某影院售卖了100张票,票的序号为1~100。
* 其中奇数票号坐在左侧,偶数票号坐在右侧。
* 键盘录入一个整数代表票号。根据不同情况给出提示:
* 如果票号为奇数,就打印坐左边。
* 如果票号为偶数,就打印坐右边。
*/
//1.键盘录入一个整数,且整数大于0,小于101
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:" );
int number = sc.nextInt();
if (number >= 0 & number <= 100) {
if (number % 2 == 0) {
System.out.println("坐右边");
} else {
System.out.println("坐左边");
}
} else {
System.out.println("您输入的序号不存在");
}
}
}
结果:
![](https://i-blog.csdnimg.cn/direct/dae3fd4094c74e7ab213224463bca632.png)
3、格式三
(1)流程图
(2)用法:在实际开发中,多种情况判断时,会用到第三种格式
(3)练习:
商场都有VIP的会员制,根据不同的会员打不同的折扣。假设商品总价为1000.键盘录入会员级别,并计算出实际支付的钱。
会员1级 :打9折;会员2级:打8折;会员3级:打7折
非会员:不打折。
代码:
package OrderDemo;
import java.util.Scanner;
public class IfDemo3 {
public static void main(String[] args) {
//1.定义一个变量代表需要支付的钱
int money = 1000;
//2.键盘录入会员等级
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的会员级别:");
int vip = sc.nextInt();
//3.判断录入的会员等级对应的优惠力度
if(vip == 1) {
System.out.println("实际支付的钱为:" + money * 0.9);
} else if (vip == 2) {
System.out.println("实际支付的钱为:" + money * 0.8 );
} else if (vip == 3) {
System.out.println("实际支付的钱为:" + money * 0.7);
} else {
System.out.println("实际支付的钱为:" + money );
}
}
}
结果:
(二)、switch语句
1、格式
2、规则说明
3、练习
键盘录入星期数,显示今天的减肥活动。周一:跑步;周二:游泳;周三:慢走;周四:动感单车;周五:拳击;周六:爬山;周日:好好吃一顿。
代码:
package OrderDemo;
import java.util.Scanner;
public class SwitchDemo1 {
public static void main(String[] args) {
//1.键盘录入星期数
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数:");
int day = sc.nextInt();
//2.判断要执行的运动项目
switch (day) {
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;
}
}
}
结果:
4、swit的其他知识
(1)default的位置和省略
代码:
package OrderDemo;
/*default的位置和省略
*1.位置 :default不一定写在最下面,我们可以写在任意位置,只不过习惯写在最下面
*2.省略 :default可以省略,语法不会报错,但是不建议省略
*/
public class SwitchDemo2 {
public static void main(String[] args) {
int number = 100;
switch (number){
default :
System.out.println("number的值不是1,10或者20");
break;
case 1:
System.out.println("number的值为1");
break;
case 10:
System.out.println("number的值为10");
break;
case 20:
System.out.println("number的值为20");
break;
}
}
}
结果:
(2)case穿透
代码:
package OrderDemo;
// *case穿透:
// * 就是语句体中没有写break导致的
// * 执行流程:
// * 首先还是会拿着小括号中表达式的值跟下面每一个case进行匹配
// * 如果匹配上了,就会执行对应的语句体,如果此时发现了break,就结束整个switch语句
// * 如果没有发现break,程序就会继续执行下一个case的语句体,一直遇到break或者右大括号为止。
// *使用场景:
// * 如果有多个case的语句体重复了,就要考虑利用case穿透去简化代码
public class SwitchDemo3 {
public static void main(String[] args) {
int number = 10;
switch (number) {
case 1:
System.out.println("number的值为1");
break;
case 10:
System.out.println("number的值为10");
//break;
case 20:
System.out.println("number的值为20");
break;
default:
System.out.println("number的值不是1,10或者20");
//break;
}
}
}
结果:
(3)switch新特性
代码:
package com.camellia.demo1.OrderDemo;
/*
*switch新特性
* JDK12之后的版本才存在
*/
public class SwitchDemo4 {
public static void main(String[] args) {
//题目:
//1 2 3 一 二 三 相互匹配
int number = 1;
switch (number) {
/*写法一:
case 1 -> {
System.out.println("一");
}
case 2 -> {
System.out.println("二");
}
case 3 -> {
System.out.println("三");
}
default -> {
System.out.println("没有这种选项");
}*/
//写法二:
case 1 -> System.out.println("一");
case 2 -> System.out.println("二");
case 3 -> System.out.println("三");
}
}
}
结果:
(4)switch和if第三种格式各自的使用场景
代码:
package com.camellia.demo1.OrderDemo;
import java.util.Scanner;
/*
*switch和if第三种格式各自的使用场景
* if的第三种格式,一般用于范围的判断
* switch:把有限个数据一一列举出来,让我们任选其一
*/
public class SwitchDemo5 {
public static void main(String[] args) {
//1.键盘录入星期数
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数:");
int day = sc.nextInt();
//2.判断要执行的运动项目
//写法一:
switch (day) {
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;
}
//写法二
if (day == 1){
System.out.println("跑步");
} else if(day == 2){
System.out.println("游泳");
} else if(day == 3){
System.out.println("慢走");
} else if(day == 4){
System.out.println("动感单车");
} else if(day == 5){
System.out.println("拳击");
} else if(day == 6){
System.out.println("爬山");
} else if(day == 7){
System.out.println("好好吃一顿");
} else {
System.out.println("没有这个星期数");
}
}
}
结果: