逻辑控制
【本节目标】
-
Java中程序的逻辑控制语句
-
Java中的输出输入方式
-
完成猜数字游戏
1.概述
我的曾经:
早上8:00起床--->洗漱--->吃早饭--->上课--->吃午饭--->上课--->运动--->吃完饭--->玩手机--->睡觉
每天的生活貌似都是这么规律,顺序的做着每件事,前途一片渺茫~~~
直到有一天:
我幡然醒悟,不好好学习可能要卖红薯,奋发图强可能离梦想会更近,从此:早上6:00起床--->看书敲代码--->上课+看编程书籍--->吃午饭--->刷题--->上课+看书--->吃晚饭--->总结--->看科技新闻--->睡觉
就这样日复一日的努力着,感觉每天都很充实,生活看到了希望~~~
再后来:
秋招来了,我用自己所学,在比特老师的帮助与鼓励下,一次次刷新着手中offer的记录,那一刻,我被自己感动了 ~~~
其实程序和人生是一样:顺序中夹杂着循环,伴随一次次选择不断成长
2.顺序结构
顺序结构比较简单,按照代码书写的顺序一行一行的执行。
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
//运行结果
aaa
bbb
ccc
如果调整代码的书写顺序,则执行顺序也发生变化
System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb");
//运行结果
aaa
ccc
bbb
3.分支结构
3.1 if 语句
1.语法格式1(单分支)
if(布尔表达式){
//语句
}
如果布尔表达式结果为true,执行if中的语句,否则不执行。
比如:小明,如果这次考试考到90分或以上,给你奖励一个鸡腿。
int score = 92;
if(score >= 90){
System.out.println("吃个大鸡腿!!!");
}
2.语法格式2(双分支)
if(布尔表达式){
//语句1
}else{
//语句2
}
如果布尔表达式为true,则执行if中语句,否则执行else中语句
比如:小明,如果这次考到90分以上,给你奖励一个大鸡腿,否则奖你一个大嘴巴子。
int score = 92;
if(score >= 90){
System.out.println("吃个大鸡腿!!!");
}else{
System.out.println("挨大嘴巴子!!!");
}
3.语法格式3(多分支)
if(布尔表达式1){
// 语句1
}else if(布尔表达式2){
// 语句2 }else{
// 语句3
}
表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3
比如:考虑到学生自尊,不公开分数排名,因此:
-
分数在 [90, 100] 之间的,为优秀
-
分数在 [80, 90) 之前的,为良好
-
分数在 [70, 80) 之间的,为中等
-
分数在 [60, 70) 之间的,为及格
-
分数在 [ 0, 60) 之间的,为不及格
-
错误数据
按照上述办法通知学生成绩。
if(score >= 90){
System.out.println("优秀");
}else if(score >= 80 && score < 90){
System.out.println("良好");
}else if(score >= 70 && score < 80){
System.out.println("中等");
}else if(score >= 60 && score < 70){
System.out.println("及格");
}else if(score >= 0 && score < 60){
System.out.println("不及格");
}else{
System.out.println("错误数据");
}
【练习】
-
判断一个数字是奇数还是偶数
int num = 10; if(num % 2 == 0){ System.out.println("num 是偶数"); }else{ System.out.println("num 是奇数"); }
-
判断一个数字是正数,负数,还是零
int num = 10;
if (num > 0) {
System.out.println("正数");
} else if (num < 0) {
System.out.println("负数");
} else {
System.out.println("0");
}
-
判断一个年份是否为闰年
int num = 10; if (num > 0) { System.out.println("正数"); } else if (num < 0) { System.out.println("负数"); } else { System.out.println("0"); }
【注意事项】
-
代码风格
//风格1----->推荐 int x = 10; if(x == 10){ //语句1 }else{ //语句2 } //风格2 int x = 10; if(x == 10) { //语句1 } else { //语句2 }
虽然两种方式是合法的,但是Java中更推荐使用风格1,{放在if/else同一行.代码跟紧凑。}
-
分号问题
int x = 20; if (x == 10); { System.out.println("hehe"); } // 运行结果 hehe
此处再if后面多了一个 分号,导致分号成为了if语句的语句体,而 { } 中的代码已经成为了和一个个与 if 无关的代码块。
-
悬垂 else 问题
int x = 10; int y = 10; if (x == 10) if (y == 10) System.out.println("aaa"); else System.out.println("bbb");
if / else 语句中可以不加 大括号 . 但是也可以写语句(只能写一条语句). 此时 else 是和最接近的 if 匹配. 但是实际开发中我们 不建议 这么写. 最好加上大括号.
3.2 switch 语句
基本语法
switch(表达式){ case 常量值1:{ 语句1; [break;] } case 常量值2:{ 语句2; [break;] //[]在这里的意思是可有可无 } ... default:{ 内容都不满足时执行语句; [break;] } }
执行流程:
-
先计算表达式的值
-
和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
-
当表达式的值没有与所列项匹配时,执行default
-
-
代码示例: 根据 day 的值输出星期
int day = 1;
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;
}
【注意事项】
-
多个case后的常量值不可以重复
-
switch的括号内只能是以下类型的表达式:
-
基本类型:byte、char、short、int,注意不能是long类型
-
引用类型:String常量串、枚举类型
-
double num = 1.0;
switch(num) {
case 1.0:
System.out.println("hehe");
break;
case 2.0:
System.out.println("haha");
break;
} // 编译出错 Test.java:4: 错误: 不兼容的类型: 从double转换到int可能会有损失
switch(num) {
^
1 个错误
-
break不要遗漏,否则会失去“多分支选择”的效果
int day = 1; switch(day) { case 1: System.out.println("星期一"); // break; case 2: System.out.println("星期二"); break; } // 运行结果 星期一 星期二
-
switch 不能表达复杂的条件
// 例如: 如果 num 的值在 10 到 20 之间, 就打印 hehe // 这样的代码使用 if 很容易表达, 但是使用 switch 就无法表示. if (num > 10 && num < 20) { System.out.println("hehe"); }
-
switch 虽然支持嵌套, 但是很丑,一般不推荐~文章来源:https://www.toymoban.com/news/detail-858612.html
int x = 1;
int y = 1;
switch(x) {
case 1:
switch(y) {
case 1:
System.out.println("hehe");
break;
}
break;
case 2:
System.out.println("haha");
break;
}
综上, 我们发现, switch 的使用局限性是比较大的文章来源地址https://www.toymoban.com/news/detail-858612.html
到了这里,关于Java逻辑控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!