一、jump
a.break
break是场景
1. 在选择结构的switch语句中, 在循环语句中
2. 离开使用场景的存在是没有意义的
break作用
1. 对于switch语句而言,中止switch语句
2. 在循环体种,中止循环(默认只会中止单重循环)
带标签的跳出(多重循环)
格式:标签名: 循环语句
标签名要符合Java的命名规则
b.continue
continue的使用场景:
1. 在循环语句中
2. 离开使用场景的存在是没有意义的
continue的作用: 退出循环的一次迭代(一次循环体)过程
也可以使用标签, 效果可以等价于break
c.return
return关键字不是为了跳转出循环体
更常用的功能是结束一个方法(函数),也就是退出一个方法。
二、方法(C语言的函数)
方法定义:方法就是完成特定功能的代码块(在有些其他语言中,也被成为函数)
方法定义的格式
修饰符 方法返回值类型 方法名(参数1类型 参数1名称, 参数2类型 参数2名称, ……) {
方法体语句;
return 返回值;
}
方法定义的格式说明:
修饰符: 现在先认为是固定的 public static
返回值类型:方法体中的代码执行结果的数据类型
方法名 :标识符
参数 :类比数学中函数的自变量 z = f(x, y)
方法体:实现具体功能的语句结合
return:跳转控制关键字,结束所在方法的方法
返回值:方法执行的到的最终结果
参数名:标识符
注意:
return 返回值;这句并非必须,比如没有返回值的方法定义中,就可以没有return
定义方法:
1. 只需要明确两个东西就可以定义出方法(两个明确)
a. 方法的返回值类型
b. 方法参数
2. 定义方法计算两个int值的求和结果(有返回值的方法)
a. 返回值类型int
b. 两个参与运算的int类型的参数
还可以定义没有返回值的方法:如果一个方法没有返回值
方法定义中的方法返回值类型:void
三、选择语句
1.if else
2.swtich
switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
格式解释:
switch关键字:表示这是一个switch语句
switch后的表达式:表示选择条件
case语句:每个case 语句表示一个分支
break语句:表示结束switch语句
default语句:表示当所有其他的case的分支,都不能匹配switch后表达式的值的时候,此时就会执行default分支。
有点类似于,多分支if最后一个else
注意事项:
1. switch语句后,表达式结果的取值类型? byte, short, int, char,jdk5以后枚举, JDK7以后可以是:String 字符串
2. case 后的常量取值? case后面的值代表固定的情况,只能用常量值表示这种固定的情况,case 后的常量值不能重复
3. break可以省略吗? 语法上可以,但是因为break的语句的作用是结束switch语句,所以一旦case 分支种缺少了break
就会发生case 穿越:
从匹配到的第一个case分支开始,依次执行紧邻的case 分支种的代码,直到遇到了break语句结束整个switch语句
或者,匹配到最后一个分支,继续往下执行即执行完毕
建议大家如果要实现选择一个分支执行的效果,不要省略break,因为一旦省略就会发生case穿越,没有选择效果了
4. default可以省略吗? default只能放到最后吗?
a. default 可以省略, 但是建议尽可能保留
b. default 不必必须放在最后,但是如果default没有放在最后,default语句得加上break, 防止case 穿越
5. switch语句的结束条件
a. 遇到了break语句,被break语句中止
b. 匹配到最后一个分支,继续向下执行,执行完switch语句
四、exercise
package com.cskaoyan.select;
import java.util.Scanner;
/*
1. 模拟做单项选择题,根据你的选择,给出对应的答案。(表达式是字符的情况)
2. 键盘录入字符串,根据给定的字符串,来输出你选择的字符串是什么?(表达式是字符串的情况)
3. 用switch语句实现键盘录入月份,输出对应的季节
4. 看程序写结果
*/
public class Demo5SwitchExercise {
public static void main(String[] args) {
// 第一题 选择你的女神
// System.out.println("请选择你的女生: ");
// System.out.println("A. 咸鱼");
// System.out.println("B. 楼楼");
// System.out.println("C. 风华");
// System.out.println("D. 龙哥");
//
// Scanner sc = new Scanner(System.in);
// String s = sc.nextLine();
// // 取读取到的字符串种的第一个字符
// char c = s.charAt(0);
// switch (c) {
// case 'A':
// System.out.println("你的女神是咸鱼");
// break;
// case 'B':
// System.out.println("你的女神是楼楼");
// break;
// case 'C':
// System.out.println("你的女神是风华");
// break;
// case 'D':
// System.out.println("你的女神是龙哥");
// break;
// default:
// System.out.println("你的选择非法");
//
// }
// 第二题
// System.out.println("你最喜欢的老师:");
// System.out.println("咸鱼");
// System.out.println("楼楼");
// System.out.println("风华");
// System.out.println("龙哥");
//
// Scanner scanner = new Scanner(System.in);
// String s = scanner.nextLine();
// // 判断字符串的值
// switch (s) {
// case "咸鱼":
// System.out.println("你最喜欢的老师是咸鱼");
// break;
// case "楼楼":
// System.out.println("你最喜欢的老师是楼楼");
// break;
// case "风华":
// System.out.println("你最喜欢的老师是风华");
// break;
// case "龙哥":
// System.out.println("你最喜欢的老师是龙哥");
// break;
// }
// 第三题 我们也可以根据需要善用case穿越,简化代码
// Scanner scanner = new Scanner(System.in);
// int month = scanner.nextInt();
//
// switch (month) {
// case 12:
// case 1:
// case 2:
// System.out.println("冬季");
// break;
// case 3:
// case 4:
// case 5:
// System.out.println("春季");
// break;
// case 6:
// case 7:
// case 8:
// System.out.println("夏季");
// break;
// case 9:
// case 10:
// case 11:
// System.out.println("秋季");
// break;
//
//
// }
// 第四题
// 版本1
// int x = 2;
// int y = 3;
// switch(x){
// default:
// y++;
// break;
// case 3:
// y++;
// case 4:
// y++;
// }
// System.out.println("y="+y);
//版本2
// int x = 2;
// int y = 3;
// switch(x){
// default:
// y++;
// case 3:
// y++;
// case 4:
// y++;
// }
// System.out.println("y="+y);
// 自动补全初始化赋值语句
// ctrl + alt + v
//Scanner scanner = new Scanner(System.in);
// 自动加注释 ctrl + /
}
}