Java基础学习:流程控制02(重点看代码中的:hashCode比较)
-
顺序结构:
-
Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序结构一句一句执行;
-
顺序结构是最简单的算法结构:A--B
-
语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构
-
-
选择结构:
-
if 单选择结构:
-
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样的一个过程在程序中用if语句来表示;
//语法:
if(布尔值){
//如果布尔值表达式为true将执行的语句
} -
代码例子:
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
System.out.println("请输入内容:");
String s=scanner.nextLine();
//equals:判断字符串是否相等
if(s.equals("Hello")){
System.out.println("s:"+s);
}
System.out.println("End");
scanner.close();
}
}
-
-
if 双选择结构:
-
那现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发;这样的需求用一个if就搞不定了,我们需要有2个判断,需要一个双选择结构,所以就有了if--else结构;
//语法:
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
} -
代码例子:
public class IfDemo02 {
public static void main(String[] args) {
//考试分数大于60分就是及格,小于60分就不及格
Scanner scanner=new Scanner(System.in);
System.out.println("输入一个分数:");
int score=scanner.nextInt();
if(score>60){
System.out.println("该分数及格");
}else{
System.out.println("该分数不及格");
}
//注意:一定要关闭流
scanner.close();
}
}
-
-
if 多选择结构:
-
我们发现成绩有:A,B,C,D等级,存在区间多级判断;所以就需要多选择结构来处理这类问题;
-
只要有一个if语句执行了,后面所有的if,,,else都会执行了;
-
终究只会有一个满足;
//语法
if(布尔表达式1){
//如果布尔表达式1的值为true执行该代码
}else if(布尔表达式2){
//如果布尔表达式2的值为true执行该代码
}else if(布尔表达式3){
//如果布尔表达式3的值为true执行该代码
}else{
//如果以上布尔表达式都不为true执行该代码
} -
代码例子:
public class IfDemo03 {
public static void main(String[] args) {
//考试分数大于60分就是及格,小于60分就不及格
Scanner scanner=new Scanner(System.in);
System.out.println("输入一个分数:");
int score=scanner.nextInt();
if(score==100){
System.out.println("恭喜满分");
}else if(score >80 && score <100){
System.out.println("良好");
}else if(score>60 && score<80){
System.out.println("合格");
}else if(score>0 && score <60){
System.out.println("不及格");
}else{
System.out.println("成绩不合法");//写程序一定要严谨
}
//注意:一定要关闭流
scanner.close();
}
}
-
-
嵌套的if结构:
-
If里面嵌套if;
//语法
if(布尔表达式1){
//如果布尔表达式1的值为true,则进行判断里面的if
if(布尔表达式2){
//如果布尔表达式2的值为true,则执行代码块
}
} -
代码例子:
-
-
switch多选择结构:
-
多选择结构还有一个实现方式就是switch case语句;
-
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支;
-
switch语句中的变量类型可以是:
-
byte ,short ,int 或者char;
-
从Java7开始:switch支持String类型了;
-
同时case标签必须为字符串常量或字面量;
//语法:
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
default://可选
//语句
} -
-
代码例子1:
public class SwitchDemo01 {
public static void main(String[] args) {
/**
* case穿透 现象:
* 1,如果不写break:后面都可以输出
* 2,switch:匹配一个具体的值;
* 3,最好都把break加上
*/
char grade='F';
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
case 'C':
System.out.println("合格");
case 'D':
System.out.println("差");
default:
System.out.println("输入的等级不对,请从新输入");
}
}
}public class SwitchDemo02 {
public static void main(String[] args) {
String name="张三";
//字符的本质:还是数字
//反编译:java----class(字节码文件)---反编译(IDEA)
/**
* 1,找到项目结构:File--Project Structure
* 2,打开文件夹:当前包鼠标右键--show in explorer
* 3,找到对应文件,copy过去,可以打开class文件了
*/
/*
重点:
反编译后:对比看出
1,name的值改为:name.hashCode();(每一个对象都有自己的一个hashCode)
2,case的值改为:对应的具体数字
hashCode():是通过特定的算法生成的;
每一个中文都有一个特定的hashCode值;
最终:比较的就是hashCode值是否相同;
*/
switch (name){
case "李四":
System.out.println("李四");
break;
case "王五":
System.out.println("王五");
break;
case "张三":
System.out.println("张三");
break;
default:
System.out.println("都不匹配");
}
}
}
-
-
-
总结:
-
所以的流程控制语句都可以互相嵌套,互相影响;
-
学习IDEA反编译;
-
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律