e. 选择结构switch
语法
switch(表达式){
case 常量1:
语句块1;
break;
case 常量2:
语句块2:
break;
...
case 常量n;
语句块n;
break;
default:
default语句块;
break;
}
表达式对应一个值;表达式的返回值必须是:(byte,short,int,char,String)
case 常量1:当表达式的值等于常量1,就执行 语句块1;
break 表示退出 switch
如果和 case常量1匹配,就执行语句块1,如果没有匹配,就继续匹配 case 常量2
如果一个都没有匹配上,则执行default。
流程图
注意问题
- case 和 default 可以放在任意位置,不影响结果
- break 用来跳出switch 语句,继续执行后续代码
- 如果没有写 break ,程序会顺序执行到switch结尾,除非遇到 break
案例
int i = 2;
switch(i){
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 0:
System.out.println("人工服务");
break;
default:
System.out.println("输入错误");
break;
}
* 练习
练习1
Scanner输入年份判断是否为闰年。
import java.util.Scanner;
public class Practice02 {
public static void main(String[] args) {
//输入年份判断是否为闰年
//创建变量接收用户输入年份
Scanner input = new Scanner(System.in);
System.out.println("输入需要查询的年份:");
int num = input.nextInt();
//判断是否为闰年
if(num % 4 == 0 && num % 100 != 0 || num % 400 ==0){
System.out.println(num + "年是闰年");
}else {
System.out.println(num + "年不是闰年");
}
}
}
练习2
输入今天星期几,如果是周六就输入温度,温度高于等于30度去游泳,温度高于等于20度低于30度就去跑步,温度低于20度在家写代码;如果不是周六,好好工作。
import java.util.Scanner;
public class Practice03 {
//编写一个main方法
public static void main(String[] args) {
//创建一个变量接收输入星期几
Scanner input = new Scanner(System.in);
System.out.println("请输入今天星期几(1~7)");
int num = input.nextInt();
//判断是否周六
if(num == 6){
//接收输入温度
System.out.println("请输入今日温度");
int tem = input.nextInt();
//判断温度在哪个区间
if(tem >=30){
System.out.println("周六太热了去游泳吧!!");
}else if(tem >= 20){
System.out.println("周六温度在20~30之间去跑步吧!!");
}else {
System.out.println("周六温度在20度以下在家写代码!!");
}
}else {
System.out.println("不是周六,好好工作!!");
}
}
}
练习3
输入月份,输出对应的天数。
import java.util.Scanner;
public class Practice04 {
public static void main(String[] args) {
//根据用户输入的月份,输出当月对应的天数
//思路:Scanner 输入月份
//1,3,5,7,8,10,12月有31天
//4,6,8,11月有30天
//2月需要判断年份是否闰年,若是闰年则2月有29天,平年则2月有28天
//月份错误
//创建一个变量接收月份
Scanner input = new Scanner(System.in);
System.out.println("请输入月份(1~12):");
int month = input.nextInt();
//判断月份,对应天数
/*if (month >= 1 && month <= 12){
if (month == 1 || month == 3 || month == 5 || month == 7
|| month == 8|| month == 10 || month == 12){
System.out.println(month + "月有31天");
} else if (month == 2) {
//2月需要判断是否闰年
System.out.println("请输入年份:");
int year = input.nextInt();
if (year % 4 == 0 && year % 100 != 0 || year % 400 ==0) {
System.out.println(year + "月有28天");
} else {
System.out.println(year + "月有29天");
}
}else {
System.out.println(month + "月有30天");
}
}else {
System.out.println("输入的月份不存在");
}*/
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month + "月有31天");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month + "月有30天");
break; //这里的 break 一定要记得
case 2:
System.out.println("2月请输入年份");
int year = input.nextInt();
//判断是否闰年
if(year % 4 == 0 && year % 100 != 0 || year % 400 ==0){
System.out.println(year + "年是闰年,2月有29天");
}else {
System.out.println(year + "年是平年,2月有28天");
}
break;
default :
System.out.println("您输入的月份不存在");
break;
}
}
}
4.3、循环结构
作用:用来解决重复性问题
循环结构四要素:循环变量初始化,循环条件,循环体,循环变量迭代
a) while 循环
反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。
语法
定义循环变量;
while(循环条件) {
循环体;
循环变量迭代;
}
先判断,再执行
流程图
案例
打印 1~100 之间的奇数
int num = 1;
while (num <= 100) {
System.out.println(num);
num+2;
}
练习
老师检查作业是否合格,不合格安排学习任务,上午阅读教材,学习理论部分,下午上机编程,掌握代码部分
学习后继续检查,直到合格为止
import java.util.Scanner;
public class Pratice05 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("老师检查是否合格?yes/no:");
String qualified = input.next();
while (qualified.equals("no")) {
System.out.println("不合格,上午阅读教材,学习理论部分,下午上机编程,掌握代码部分");
System.out.println("老师检查是否合格?yes/no:");
qualified = input.next();
}
System.out.println("恭喜合格啦!");
}
}
输入一个整数,将其翻转输出。如输入123456,输出654321.
import java.util.Scanner;
public class Practice06 {
public static void main(String[] args) {
//输入一个整数,将其翻转输出
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = input.nextInt();
int result = 0;
while (number != 0) {
result = result * 10 + number % 10;
number /= 10;
}
System.out.println("翻转后变成:" + result);
}
}
假设五个人参加考试,最后得出总分、最高分、最低分、平均分,要求成绩从控制台输入
import java.util.Scanner;
public class Practice07 {
public static void main(String[] args) {
//假设五个人参加考试,最后得出总分、最高分、最低分、平均分,要求成绩从控制台输入
//思路:循环输入五人的成绩
Scanner input = new Scanner(System.in);
//定义好需要的变量
int sum = 0,max = 0,min = 0,avg = 0;
int num = 1;
//循环输入成绩
while (num <= 5) {
System.out.println("输入第" + num + "个人的成绩:");
int score = input.nextInt();
//总分
sum += score;
//最高分,最低分
if (num == 1) {
max = score;
min = score;
}else {
max = max > score ? max : score;
min = min < score ? min : score;
}
num++;
}
//平均分
avg = sum / 5;
System.out.println("总分:" + sum + ",最高分:" + max + ",最低分:" + min + ",平均分:" + avg);
}
}
b) do…while 循环
执行条件,先执行一次循环体,再判断循环条件。
语法
循环变量初始化
do{
循环体;
循环变量迭代;
} while(循环条件);
流程图
案例
经过几天学习,老师给了张浩一道测试题,先让他上机编写程序完成,然后老师检查是否合格。如果不合格,则继续编写。
import java.util.Scanner;
public class DoWhile01 {
public static void main(String[] args) {
//经过几天学习,老师给了张浩一道测试题
//先让他上机编写程序完成
//然后老师检查是否合格。如果不合格,则继续编写。
Scanner input = new Scanner(System.in);
String quil;
do {
System.out.println("上机编写程序");
System.out.println("老师批改是否合格(yes/no)");
quil = input.next();
} while(quil.equals("no"));
System.out.println("恭喜合格");
}
}
c) for 循环
语法
for(循环变量初始化;循环条件;循环变量迭代) {
循环体;
}
流程图
案例
* 代码调试功能
DEBUG:找虫子,找到代码错误的位置
(一般在编译和运行都不报错,却找不到错误时使用)
步骤:
- 在你觉得可能有错误的地方打断点(代码左边显示行数处点击一下),一般打在代码开始的位置
- 点击绿色虫子图案的按钮,运行到断点的位置
- 点击F6,单步进入,运行每行代码,观察数据输出
- 观察程序运行情况,找到程序的BUG
4.4、跳转语句
1)、return
作用:return 使用在方法,表示跳出所在的方法
如果使用在 main 方法中,表示退出程序
案例
import java.util.Scanner;
public class Return01 {
public static void main(String[] args) {
//不满足条件时返回
//输入用户名
Scanner input = new Scanner(System.in);
System.out.println("请输入用户名:");
String userName = input.next();
//判断用户名
if(!userName.equalsIgnoreCase("admin")){
System.out.println("用户名错误");
return;
}
//输入密码
System.out.println("请输入密码:");
String pwd = input.next();
//判断密码
if(!pwd.equalsIgnoreCase("88888888")){
System.out.println("密码错误");
return;
}
System.out.println("登录成功");
}
}
拓展知识点
equalsIgnoreCase("字符串")
比较两个字符串,忽略大小写
2)、break
当break出现在循环语句中,作用是跳出循环语句,执行后面的代码
案例
当变量x的值为3时,使用break语句跳出循环。
int x = 1;
while (x <= 4) {
System.out.println("x = " + x);
if (x == 3) {
break; //跳出循环
}
x++;
}
打印结果只到了 x = 3;并没有出现”x = 4″
3)、continue
continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。
案例
求1~100的奇数和
//用continue跳过偶数
int sum = 0; // 定义变量sum,用于记住和
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) { // i是一个偶数,不累加
continue; // 结束本次循环
}
sum += i; // 实现sum和i的累加
}
System.out.println("sum = " + sum);
写代码要习惯注释
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/271794.html