JavaEE - 转义字符、常量、if、switch

一、转义字符

含义:用来表示有特殊意义的字符本身

符号作用
\n换行
\t水平制表
\”双引号
\’单引号
\\一个斜杠
System.out.print("表示换行\n");
System.out.print("相当于按一下回车换行符\n");

System.out.println("Java说:\"用双引号\"");
System.out.println("Java说:\'用单引号\'");
System.out.println("Java说:\\用斜杠\\");

System.out.println("水平制表符\t表示空四个字符\t也称缩进\t相当于按一下Tab键");

二、常量

常量:在程序执行过程中不变的量

分类:
  1. 数字字面量——程序中的数字

     int i = 10; //10是常量
    
  2. 字面值常量——用双引号括起来的内容

    System.out.println("字面值常量");
    
  3. 使用final(最终的)关键字去修饰的变量,变成了常量

    final int i = 10;//10是常量,使用final修饰变量i,i也变成常量了
    i = 20;//报错,i不能被重新赋值
    

字面值常量和final修饰的变量:这两个常量都是存储在内存中的常量池区域,直到项目结束才会被销毁

  • 命名规则:常量全大写,单词与单词之间用下划线隔开
    final int MAX_VALUE = 1000;
    

三、Java执行语句

  1. 顺序语句:方法中的代码从上往下执行
  2. 分支语句:某个条件成立就执行某个功能
    • if分支
    • switch分支
  3. 循环语句:某个条件成立就重复的执行某个功能
    • for循环
    • while循环
    • do-while循环
  4. 特殊的流程控制语句
    • break
    • continue
    • return
    • lable

四、if分支

1. 简单if分支

语法结构:

if(表达式){
	...代码块...
}

表达式的结果必须是boolean
true - 执行代码块
false- 跳过if分支

if (false) {
    System.out.println("代码块");
}
System.out.println("if分支以外的代码");

案例:如果Miku的Java考试成绩大于98分,Miku就能获得一根葱

Scanner scan = new Scanner(System.in);
System.out.println("请输入Miku的考试成绩:");
double score = scan.nextDouble();

if (score > 98) {
    System.out.println("奖励Miku一根葱");
}

2. 复杂if分支

案例一: 计算人类的健康值在20-25的数值内为健康
(健康值算法为:体重(Kg) / 身高(米)的平方)

//1.输入体重和身高
Scanner scan = new Scanner(System.in);
System.out.println("请输入体重-Kg:");
double weight = scan.nextDouble();
System.out.println("请输入身高-M:");
double height = scan.nextDouble();
//2.计算健康值
double health = weight / (height * height);
//3.判断
if (health > 20 && health < 25) {
    System.out.println("小护士说:\"健康,继续保持\"");
}

案例二:Miku的Java成绩大于98分,而且音乐成绩大于80分,奖励她一根葱;或者Java成绩等于100分,音乐成绩大于70分,也可以奖励奖励她一根葱。

//1.输入java成绩和音乐成绩
Scanner scan = new Scanner(System.in);
System.out.println("请输入Java成绩:");
double javaScore = scan.nextDouble();
System.out.println("请输入音乐成绩:");
double musicScore = scan.nextDouble();

//2.判断
if ((javaScore > 98 && musicScore > 80) || (javaScore == 100 && musicScore > 70)) {
    System.out.println("奖励Miku一根葱");
}

驼峰命名法:

  • 类名:大驼峰(单词首字母大写)BigHump
  • 变量名:小驼峰(除了第一个单词,其余的单词首字母大写)smallHump

3. 多重if分支

语法结构1:

if (表达式) {
    ...代码块...
} else {
    ...代码块...
}

表达式的结果必须是boolean类型
true - 执行代码块
false- 执行else代码块

if (false) {
    System.out.println("代码块");
} else {
    System.out.println("else代码块");
}

System.out.println("if分支以外的代码");

案例:如果蕾姆的Java考试成绩大于90分,奖励她一个棒棒糖,否则就罚她补课

//1.输入Java成绩
Scanner scan = new Scanner(System.in);
System.out.println("请输入蕾姆的Java考试成绩:");
double score = scan.nextDouble();

//2.判断
if (score > 90) {
    System.out.println("奖励蕾姆一颗棒棒糖");
} else {
    System.out.println("老师来给蕾姆通宵补课~~~");
}

语法结构2:

if (表达式1) {
    ...代码块1...
} else if (表达式2) {
    ...代码块2...
} else if (表达式n) {
    ...代码块n...
} else {
    ...else代码块...
}

表达式的结果必须是boolean类型
从上往下判断,哪个表达式先成立(true),就执行对应的代码块
如果都不成立,就执行else代码块
注意:else{}根据需求可写可不写

if (false) {
    System.out.println("代码块1");
} else if (false) {
    System.out.println("代码块2");
} else if (false) {
    System.out.println("代码块n");
} else {
    System.out.println("else代码块");
}

System.out.println("if分支以外的代码");

案例一:人类的健康值在
15-20的数值内为偏瘦
20-25的数值内为健康
25-30的数值内为偏胖
(健康值算法为:体重(Kg) / 身高(米)的平方)

//1.输入体重和身高
Scanner scan = new Scanner(System.in);
System.out.println("请输入体重-Kg:");
double weight = scan.nextDouble();
System.out.println("请输入身高-M:");
double height = scan.nextDouble();

//2.计算健康值
double health = weight / (height * height);

//3.判断
if (health >= 15 && health < 20) {
    System.out.println("小护士说:\"偏瘦,多吃垃圾食品、多喝可乐、多熬夜~~\"");
} else if (health >= 20 && health < 25) {
    System.out.println("小护士说:\"健康,继续保持\"");
} else if (health >= 25 && health < 30) {
    System.out.println("小护士说:\"偏胖,注意饮食,多做运动,嘿嘿嘿~~~\"");
} else {
    System.out.println("小护士说:\"健康值异常,请去医院进行详细的检查\"");
}

案例二:通过键盘录入学生成绩
如果在90-100之间,则打印“A”,
否则如果在80-90之间,则打印“B”,
否则如果在70-80之间,则打印“C”
否则如果在60-70之间,则打印“D”
否则如果在0-60之间,则打印“E”
否则打印“成绩异常”

System.out.println("输入你的成绩");
Scanner scanner = new Scanner(System.in
double score = scanner.nextDouble();
if (score >= 90 && score <= 100) {
    System.out.println("A");
} else if (score >= 80 && score < 90) {
    System.out.println("B");
} else if (score >= 70 && score < 80) {
    System.out.println("C");
} else if (score >= 60 && score < 70) {
    System.out.println("D");
} else if (score >= 0 && score < 60) {
    System.out.println("E");
} else {
    System.out.println("成绩异常");
}

4. 嵌套if分支

语法结构:

if (表达式1) {
    if (表达式1) {
        ...代码块1...
    } else {
        ...代码块2...
    }
} else {
    ...else代码块...
}

案例:举行运动会,百米赛跑跑入16秒内的学生有资格进决赛,根据性别分别进入男子组和女子组

Scanner scan = new Scanner(System.in);
System.out.println("请输入成绩:");
double score = scan.nextDouble();

if (score >= 0 && score < 16) {
    System.out.println("请输入性别:");
    String sex = scan.next();

    if (sex.equals("男")) { //判断sex和"男"这两个字符串内容是否相等的方法
        System.out.println("恭喜,进入到男子组决赛");
    } else if (sex.equals("女")) {
        System.out.println("恭喜,进入到女子组决赛");
    } else {
        System.out.println("性别异常");
    }

} else if (score > 16) {
    System.out.println("重在参与");
} else {
    System.out.println("成绩异常");
}

总结:

  1. if可以判断复杂的条件
  2. if可以判断区间
  3. if可以判断单个值是否相等
  4. if可以二选一:if…else…
  5. if可以多选一:if…else if…
  6. if可以嵌套

五、switch分支

1. 基本使用

语法结构:

switch (表达式) {
    case1:
		...代码块1...
        break;
    case2:
		...代码块2...
        break;
    case 值n:
		...代码块n...
        break;
    default:
		...代码块...
        break;
}

表达式的结果可以是:byte、short、int、枚举(JDK1.5)、String(JDK1.7)
表达式的结果从上往下依次给值1、值2、值n比较,相等就执行对应的代码块
如果都不相等,就执行default代码块

注意:

  1. default代码块根据需求可写可不写
  2. break的作用是跳出整个分支语句
switch (1000) {
    case 10:
        System.out.println("10");
        break;
    case 50:
        System.out.println("50");
        break;
    case 100:
        System.out.println("100");
        break;
    default:
        System.out.println("default代码块");
        break;
}
System.out.println("switch分支以外的代码");

案例:水原千鹤参加计算机编程大赛
如果获得第一名,将获得1个月马尔代夫旅游
如果获得第二名,将奖励笔记本电脑一部
如果获得第三名,将奖励移动硬盘一个
否则,水原千鹤晚上通宵补课

Scanner scan = new Scanner(System.in);
System.out.println("请输入比赛名次:");
String str = scan.next();
switch (str) {
    case "第一名":
        System.out.println("和老师一起马尔代夫旅游1个月");
        break;
    case "第二名":
        System.out.println("奖励笔记本电脑一部");
        break;
    case "第三名":
        System.out.println("奖励移动硬盘一个");
        break;
    default:
        System.out.println("老师晚上给水原千鹤通宵补课");
        break;
}
2. 深入switch分支

面试题:

case的值可以相同吗?
不能相同,会报错:case 标签重复

default可以省略吗?
可以

break可以省略吗?
可以

default的位置一定要在最后吗?
不一定,但是最好写在最后,因为default写在中间可读性很低

表达式值的类型可以是什么?
byte、short、int、枚举(JDK1.5)、String(JDK1.7)

案例:输入年和月,输出当月的天数?

分析:

1/3/5/7/8/10/12:31天
4/6/9/11:30天
2:28天(平年)、29天(闰年)
注意:年份被4整除并且不能被100整数 或者 被400整除 – 闰年

Scanner scan = new Scanner(System.in);
System.out.println("请输入年:");
int year = scan.nextInt();
System.out.println("请输入月:");
int month = scan.nextInt();
int day = 0;//当月的天数
switch (month) {
    case 1:case 3:case 5:case 7:case 8:case 10:case 12:
        day = 31;
        break;
    case 4:case 6:case 9:case 11:
        day = 30;
        break;
    case 2:
        //判断是否是闰年
        //条件:年份被4整除并且不能被100整数 或者 被400整除
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {//闰年
            day = 29;
        } else {//平年
            day = 28;
        }
        break;
}
System.out.println(year + "年" + month + "月的天数为:" + day + "天");
if & switch

表达式的区别:
if:boolean
switch:byte、short、int、枚举(JDK1.5)、String(JDK1.7)

应用场景的区别:
if:判断单个值、区间、复杂条件
switch:判断单个值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaEE-图书管理系统通常需要包含以下数据库表: 1. 用户表(user):包括用户ID、用户名、密码、邮箱等字段。 2. 图书表(book):包括图书ID、图书名称、作者、出版社、ISBN号等字段。 3. 借阅记录表(borrow_record):包括借阅记录ID、用户ID、图书ID、借阅时间、归还时间等字段。 4. 管理员表(admin):包括管理员ID、管理员名称、密码等字段。 以下是JavaEE-图书管理系统数据库代码示例: ```sql -- 用户表 CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 图书表 CREATE TABLE `book` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `author` varchar(50) NOT NULL, `publisher` varchar(50) NOT NULL, `isbn` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 借阅记录表 CREATE TABLE `borrow_record` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `book_id` int(11) NOT NULL, `borrow_time` datetime NOT NULL, `return_time` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_user_id_idx` (`user_id`), KEY `fk_book_id_idx` (`book_id`), CONSTRAINT `fk_book_id` FOREIGN KEY (`book_id`) REFERENCES `book` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 管理员表 CREATE TABLE `admin` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` -- 相关问题--: 1. 如何创建数据库表? 2. 如何在JavaEE中连接数据库? 3. 数据库中的什么是外键?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值