package switchdemo;
public class SwitchDemo1 {
public static void main(String[] args) {
//兰州拉面,武汉热干面,北京炸酱面,陕西油泼面
//分析:
//1.定义一个变量,表示选择的面
String noodles = "兰州拉面";
//2.使用switch语句,根据选择的面,输出对应的价格
switch(noodles){
case "兰州拉面":
System.out.println("吃兰州拉面");
break;
case "武汉热干面":
System.out.println("吃武汉热干面");
break;
case "北京炸酱面":
System.out.println("吃北京炸酱面");
break;
case "陕西油泼面":
System.out.println("吃陕西油泼面");
break;
default:
System.out.println("吃方便面");
break;
}
}
}
(运行结果截图)
练习:运动计划
**需求:**键盘录入星期数,显示今天的减肥活动
周一:跑步;周二:游泳;周三:慢走;周四:动感单车;周五:拳击;周六:爬山;周日:好好吃一顿
(源代码)
java复制代码
package test;
import java.util.Scanner;
public class Test9 {
public static void main(String[] args) {
/*键盘录入星期数,显示今天的减肥活动
周一:跑步;周二:游泳;周三:慢走;周四:动感单车;周五:拳击;周六:爬山;周日:好好吃一顿*/
//分析:
//1.键盘录入星期数
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数:");
int week = sc.nextInt();
//2.利用switch对星期进行匹配
switch(week){
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;
}
}
}
(运行结果截图)
switch其他知识点
default的位置和省略
**1.位置:**default不一定是写在最下面的,我们可以写在任意位置.只不过习惯会写在最下面
(源代码)
java复制代码
package switchdemo;
/*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.省略:**default可以省略,语法不会有问题,但是不建议省略
(源代码)
java复制代码
package switchdemo;
/*default的位置和省略
1.位置:default不一定是写在最下面的,我们可以写在任意位置.只不过习惯会写在最下面
2.省略:default可以省略,语法不会有问题,但是不建议省略*/
public class SwitchDemo2 {
public static void main(String[] args) {
int number = 100;
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;*/
}
}
}
package switchdemo;
/*case穿透*/
public class SwitchDemo3 {
public static void main(String[] args) {
int number = 1;
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;
}
}
}
(运行结果截图)
switch新特性(JDK12之后)
(源代码)
java复制代码
package switchdemo;
/*switch新特性(JDK12之后)*/
public class SwitchDemo4 {
public static void main(String[] args) {
//需求:键盘录入1 2 3 输出一 二三
/*int number = 1;
switch (number) {
case 1:
System.out.println("一");
break;
case 2:
System.out.println("二");
break;
case 3:
System.out.println("三");
break;
default:
System.out.println("没有这种选项");
break;
}*/
/*int number = 1;
switch (number) {
case 1 -> {
System.out.println("一");
}
case 2 -> {
System.out.println("二");
}
case 3 -> {
System.out.println("三");
}
default -> {
System.out.println("没有这种选项");
}*/
int number = 1;
switch (number) {
case 1 -> System.out.println("一");
case 2 -> System.out.println("二");
case 3 -> System.out.println("三");
default -> System.out.println("没有这种选项");
}
}
}
(运行结果截图)
switch和if第三种格式各自的使用场景
switch的使用场景: 把有限个数据一一列举出来,让我们任选其一.
(源代码)
java复制代码
package test;
import java.util.Scanner;
public class Test9 {
public static void main(String[] args) {
/*键盘录入星期数,显示今天的减肥活动
周一:跑步;周二:游泳;周三:慢走;周四:动感单车;周五:拳击;周六:爬山;周日:好好吃一顿*/
//分析:
//1.键盘录入星期数
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数:");
int week = sc.nextInt();
//2.利用switch对星期进行匹配
switch(week){
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第三种格式使用场景: 一般用于对范围的判断.
(源代码)
java复制代码
package test;
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
/*根据不同的分数送不同的礼物:
如果是95~100分,送自行车一辆;
如果是90~94分,游乐场玩一天;
如果是80~89分,送变形金刚一个;
如果是80分以下,揍一顿 */
//分析:
//1.键盘录入一个整数表示分数
Scanner sc = new Scanner(System.in);
System.out.println("请录入分数:");
int score = sc.nextInt();
//对异常数据进行判断校验:0~100为合理数据
if (score >= 0 && score <= 100) {
//2.对分数进行判断(多选一)
if (score >= 95 && score <= 100) {
System.out.println("送自行车一辆");
} else if (score >= 90 && score <= 94) {
System.out.println("游乐场玩一天");
} else if (score >= 80 && score <= 89) {
System.out.println("送变形金刚一个");
} else {
System.out.println("揍一顿");
}
}else{
System.out.println("当前录入的成绩不合法");
}
}
}
(运行结果截图)
练习:休息日和工作日
**需求:**键盘录入星期数,输出工作日,休息日.(1-5)工作日,(6-7)休息日
(源代码)
java复制代码
package test;
import java.util.Scanner;
public class Test10 {
public static void main(String[] args) {
/*需求:键盘录入星期数,输出工作日,休息日.(1-5)工作日,(6-7)休息日*/
//分析:
//1.键盘录入星期数
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数:");
int week = sc.nextInt();
//2.利用switch语句来进行选择
/*switch (week) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("您输入的星期数有误");
break;
}*/
/*switch (week) {
case 1, 2, 3, 4, 5:
System.out.println("工作日");
break;
case 6, 7:
System.out.println("休息日");
break;
default:
System.out.println("您输入的星期数有误");
break;
}*/
switch (week) {
case 1,2,3,4,5 -> System.out.println("工作日");
case 6,7 -> System.out.println("休息日");
default -> System.out.println("您输入的星期数有误");
}
}
}
package test;
import java.util.Scanner;
public class Test11 {
public static void main(String[] args) {
/*当我们拨打了某些服务电话时,一般会有按键选择.
假设现在我们我打了一个机票预订电话,电话中语音提示:
1.机票查询;2.机票预订;3.机票改签;4.退出服务;其他按键也是退出服务.
请使用switch模拟该业务逻辑.*/
//分析:
//1.键盘录入一个证书表示我们的选择
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的选择:");
int choose = sc.nextInt();
//2.根据选择执行不同的代码
switch (choose) {
case 1 -> System.out.println("机票查询");
case 2 -> System.out.println("机票预订");
case 3 -> System.out.println("机票改签");
case 4 -> System.out.println("退出服务");
default -> System.out.println("退出服务");
}
}
}
(运行结果截图)
循环语句
什么是循环?
-重复地做某件事情
-具有明确的开始和停止标记
循环的分类
-for
-while
-do...while
for循环
格式:
for (初始化语句 ; 条件判断语句 ; 条件控制语句){
循环体语句;
}
执行流程:
1.执行初始化语句
2.执行条件判断语句,看其结果是true还是false
-如果是false,循环结束
-如果是true,执行循环体语句
3.执行条件控制语句
4.回到2继续执行条件判断语句
注意事项:
1.初始化语句只执行一次
2.判断语句为true,循环继续
3.判断结果为false,循环结束
基础案例1:输出HelloWorld
**需求:**打印5次HelloWorld
(源代码)
java复制代码
package loopdemo;
public class ForDemo1 {
public static void main(String[] args) {
//打印5次HelloWorld
for (int i = 1; i <= 5; i++) {
System.out.println("HelloWorld");
}
}
}
(运行结果截图)
基础案例2:输出数字
**需求1:**打印 1 - 5
基础案例3:倒着输出数字
**需求2:**打印 5 - 1
(源代码)
java复制代码
package test;
public class Test12 {
public static void main(String[] args) {
//需求1:打印 1 - 5
for (int i = 1 ; i <= 5 ; i++){
System.out.println(i);
}
//需求2:打印 5 - 1
for (int i = 5 ; i >= 1 ; i--){
System.out.println(i);
}
}
}
(运行结果截图)
基础案例4:断线重连
需求:
(源代码)
java复制代码
package test;
public class Test13 {
public static void main(String[] args) {
for(int i = 1 ; i <= 5 ; i++){
System.out.println("第"+ i + "次执行断线重连的业务逻辑");
}
}
}
(运行结果截图)
基础案例5:求和
**需求:**在实际开发中,如果获取一个范围中的每一个数据时,也会用到循环.比如:求1-5之间的和
(源代码)
java复制代码
package test;
public class Test14 {
public static void main(String[] args) {
/*需求:在实际开发中,如果获取一个范围中的每一个数据时,也会用到循环.
比如:求1-5之间的和*/
//分析:
//1.循环1-5得到里面的每一个数字
int sum = 0;
for (int i = 1 ; i <= 5 ; i++){
//可以把得到的每一个数字累加到变量sum当中
sum += i;
}
//当循环结束之后,表示已经把1-5之间的每一个数字都获取到了,并且都累加到了变量sum当中
System.out.println(sum);
}
}
package test;
import java.util.Scanner;
public class Test16 {
public static void main(String[] args) {
/*需求:键盘录入两个数字,表示一个范围.
统计这个范围中既能被3整除,又能被5整除的数字有多少个?*/
//分析:
//1.键盘录入两个数字
Scanner sc = new Scanner(System.in);
System.out.println("请录入一个数字表示范围的开始:");
int start = sc.nextInt();
System.out.println("请录入一个数字表示范围的结束:");
int end = sc.nextInt();
//统计变量:统计符合要求的数字的个数
int count = 0;
//2.利用循环获取这个范围中的每一个数字
for (int i = start ; i <= end ; i++){
//3.对每一个数字进行判断,统计有多少个满足要求的数字
if (i % 3 == 0 && i % 5 == 0){
//System.out.println(i);
count++;
}
}
System.out.println(count);
}
}
(运行结果截图)
while循环
格式:
初始化语句;
while (条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
1.执行初始化语句
2.执行条件判断语句,看其结果是true还是false
-如果是false,循环结束
-如果是true,执行循环体语句
3.执行条件控制语句
4.回到2继续执行条件判断语句
注意事项:
1.初始化语句只执行一次
2.判断语句为true,循环继续
3.判断结果为false,循环结束
练习:输出数字
**需求:**利用switch循环打印1 ~ 100
(源代码)
java复制代码
package whiledemo;
public class WhileDemo1 {
public static void main(String[] args) {
//需求:利用switch循环打印1 ~ 100
//分析:
//开始条件:1
//结束条件:100
int i = 1;
while (i <= 100) {
System.out.println(i);
i++;
}
}
}
package test;
public class Test18 {
public static void main(String[] args) {
/*需求:给你一个整数x.如果x是一个回文整数,打印true,否则,返回false.
解释:回文数是指正序(从左到右)和倒序(从右到左)读都是一样的整数.
例如:121是回文数;而123不是.*/
//核心思路:把数字倒过来跟原来的数字进行比较
//1.定义数字
int x = 12345;
//定义一个临时变量用于记录x的值,用于最后进行比较
int temp = x;
//定义一个变量用于记录倒过来的数字
int num = 0;
//2.利用循环开始从右往左获取每一位数字
while(x != 0){
//从右往左获取每一位数字
int ge = x % 10;
//修改一下x记录的值
x = x / 10;
//把当前获取到的数字拼接到最右边
num = num * 10 + ge;
}
//3.打印num
System.out.println(num);
//4.比较
System.out.println(num == temp);
}
}