Java学习笔记2024/1/29

1. 流程控制语句

笔记地点

1.1 流程控制语句基础概念

package com.angus.processControlStatement.processControlStatement;

public class processControlStatementNote {
    public static void main(String[] args) {
        // 本章知识点: 流程控制语句
        // 流程控制语句: 通过一些语句,控制程序的执行流程
        // 解析: 通过顺序结构,分支结构,循环结构,控制程序的执行流程

        System.out.println("^^");
    }
}

1.2 顺序结构的基础概念

package com.angus.processControlStatement.sequentialStructure;

public class sequentialStructureNote {
    public static void main(String[] args) {
        // 题外话: 记笔记流程
        // 1.从大到小,理清框架
        // 2.看完当前知识点在整理
        // 3.当然可以随笔,随笔时注释随笔就行

        // 知识框架: 流程控制语句 -> 顺序结构
        // 本篇知识点: 顺序结构
        // 顺序结构是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行

        System.out.println("1");
        System.out.println("2");
        System.out.println("3");
        System.out.println("4");

        System.out.println("^^");
    }
}

1.3 分支结构的基础概念

package com.angus.processControlStatement.branchingStructure;

public class branchingStructureNote {
    public static void main(String[] args) {
        // 知识框架: 流程控制语句 -> 分支结构
        // 本章知识点: 分支结构

        // 分支结构里面包含了两种语句
        // if语句 和 switch语句

        // if 表示判断
        // switch 表示选择

        System.out.println("^^");
    }
}

1.3.1 if语句

package com.angus.processControlStatement.branchingStructure;

public class branchingStructureNote1 {
    public static void main(String[] args) {
        // 知识框架: 流程控制语句 -> 分支结构 -> if语句
        // 本章知识点: if语句

        // 为什么要有if语句呢?
        // 是因为输出结果如果有分支,就要用到if语句来判断走哪个分支

        // if语句在程序当中就是用来判断的

        // if语句一共有三个格式

        // if语句的第一种格式

        // 第一种格式:
        // if(关系表达式){
        // 语句体;
        // }

        // 关系表达式就是用来表示判断的
        // 语句体就是要执行的代码

        // 执行流程:
        // 1.首先计算关系表达式的值
        // 2.如果关系表达式的值为true就执行语句
        // 3.如果关系表达式的值为false就不执行语句
        // 4.继续执行后面的其他语句
        // 流程图放在随笔笔记里

        // if语句的第二种格式
        // 就是在第一种格式的基础上加了一个else

        // 第二种格式:
        // if(关系表达式){
        // 语句体1;
        // } else {
        // 语句体2;
        // }

        // 有没有发现加的这个else语句很像第一种格式的if语句,只是没有了关系表达式

        // 执行流程:
        // 1.首先计算关系表达式的值
        // 2.如果关系表达式的值为true就执行if里面的语句体1
        // 3.如果关系表达式的值为false就执行else里面的语句体2
        // 4.继续执行后面的其他语句
        // 流程图放在随笔笔记里

        // if语句的第三种格式
        // 就是在第二种格式中间加一个else if语句
        // 而且可以观察到中间的else if语句更像第一种格式,只是多加了个else

        // 随笔
        // 之后我就将
        // 第一种格式叫做if语句
        // 第二种叫做if else语句
        // 第三种叫做else if语句
        // 我将它们抽象出来有点类似变量名用来表示变量的那种感觉

        // 第三种格式:
        // if(关系表达式1[表判断]){
        // 语句体1;[表执行]
        // } else if(关系表达式2){
        // 语句体2;
        // }
        // ...
        // else {
        // 语句体 n + 1 ;
        // }

        // 随笔
        // 各个语句的大括号都是分开的,没有具体谁包着谁

        // 执行流程:
        // 1.首先计算关系表达式1的值
        // 2.如果关系表达式1的值为true就执行if里面的语句体1;如果关系表达式1的值为false就计算关系表达式2的值
        // 3.如果关系表达式2的值为true就执行else if里面的语句体2;如果关系表达式2的值为false就计算关系表达式3的值
        // 4....
        // 5.如果所有关系表达式的值都为false,就执行else里面的语句体n+1
        // 流程图看随笔笔记

        // 执行流程简单理解就是
        // 从上往下依次进行判断
        // 只要有一个判断为真,就执行对应的语句体
        // 如果所有的判断都为假,就执行else的语句体


        System.out.println("^^");
    }
}
package com.angus.processControlStatement.branchingStructure;

import java.util.Scanner;

public class branchingStructureDemo1 {
    public static void main(String[] args) {
        // 本篇demo1对应note1
        // if的Demo

        // 需求:键盘录入女婿酒量,如果大于 2 斤,老丈人给出回应,反之不回应
        // 分析: 1.键盘录入->变量 2.大于->关系运算符->要么输出true要么输出false 3.给出回应和不给出回应->判断->if语句

        //提示
        System.out.println("录入女婿酒量");

        // 1.
        Scanner scanner = new Scanner(System.in);
        int wine = scanner.nextInt();

        // 2.
        boolean re = wine > 2;

        // 3.
        if(re){    //要注意,true是执行,false是不执行
            System.out.println("可以嘛小伙子");
        }

        System.out.println("^^");
    }
}
// 题外话: 学完一个大知识点记得把笔记腾上去
package com.angus.processControlStatement.branchingStructure;

public class branchingStructureDemo2 {
    public static void main(String[] args) {
        // 本篇demo2对应note1
        // if的Demo

        // if的注意事项:
        // 1.大括号的开头可以另起一行,但是建议写在第一行的末尾
        // 2.在语句体中,只有一句代码,大括号可以不写,但是建议写
        // 3.如果对一个boolean类型的变量进行判断,不要用==号,直接把boolean定义的变量写在小括号中

        // 随笔
        // boolean类型定义的变量,int类型定义的变量

        // 随笔
        // 有题外话,其他笔记,就可以这样写个随笔

        // 1.大括号的开头可以另起一行,但是建议写在第一行的末尾
        int num1 = 10;
        if( num1 > 1){
            System.out.println("yes");
        }

        int num2 = 10;
        if( num2 > 1)
        {
            System.out.println("yes too");
        }



        // 随笔
//      int num = 10;
        if( 10 > 1){
            System.out.println("yes 直接使用字面量判断也行");
        }

        // 2.在语句体中,只有一句代码,大括号可以不写,但是建议写
        int num3 = 10;
        if( num3 > 1)
            System.out.println("yes too");

        // 比如这个例子
        // int a = 100;
        // 这个代码不是一句,其实是两句

//        int num4 = 10;
//        if( num4 > 1)
//            int a = 100;
//            System.out.println(a);

        // 改进
        int num4 = 10;
        if( num4 > 1) {
            int a = 100;
            System.out.println(a);
        }


        System.out.println("--------");

        // 3.如果对一个boolean类型的变量进行判断,不要用==号,直接把boolean定义的变量写在小括号中
        boolean falg1 = false;
        // 此时不是判断,变成了赋值
        if (falg1 == true){         // 可以这样写,但是非常不建议,因为这样就有两个判断语句了,降低了效率
            System.out.println("yes1");
        }


        boolean falg2 = false;
        // 此时不是判断,变成了赋值
        if (falg2 = true){          // 判断变成了赋值,所以不可以这样写
            System.out.println("yes2");
        }

        // 改进
        boolean falg3 = false;
        // 此时不是判断,变成了赋值
        if (falg3){                // 就需要这样写,一个判断语句就够了
            System.out.println("yes3");
        }


        System.out.println("^^");
    }
}
// 随笔
// 直接使用字面量中的关系运算符表判断
// 间接使用变量中的boolean类型定义变量表判断
// 当然,boolean类型也会使用到关系运算符
// 之所以我们爱用变量
// 是因为变量的可操作性更高
package com.angus.processControlStatement.branchingStructure;

import java.util.Scanner;

public class test1 {
    public static void main(String[] args) {
        // 这篇test1对应note1
        // 利用if语句的第一种格式
        // 这个知识点做题

        //题目:
        //小红:如果你这次考试全班第一,我就做你女朋友。
        int ranking1 = 1;
        boolean re1 = ranking1 ==1;
        if (re1){
            System.out.println("yes");
        }

        // 使用键盘录入
        Scanner scanner = new Scanner(System.in);
        System.out.println("打印名次");
        int ranking2 = scanner.nextInt();
        boolean re2 = ranking2 ==1;
        if (re2){
            System.out.println("yesyes");
        }

        System.out.println("^^");
    }
}
package com.angus.processControlStatement.branchingStructure;

public class test2 {
    public static void main(String[] args) {
        // 这篇test2对应note1
        // 利用if语句的第一种格式
        // 这个知识点做题

        //题目:
        //汽车无人驾驶会涉及到大量的判断
        //当汽车行驶的时候遇到了红绿灯,就会进行判断
        //如果红灯亮,就停止
        //如果黄灯亮,就减速
        //如果绿灯亮,就行驶

        // 分析:
        // 1.有三个灯,那就定义三个变量
        // 2.如果..就..如果..就..如果..就..
        //   说明有很多种不同的情况
        //   那就要用到判断语句if

        //   用到判断语句那就说明定义变量时要用到boolean类型

        // 1.
        boolean red = false;
        boolean green = false;
        boolean yellow = true;

        // 2.
        if (red){
            System.out.println("停");
        }

        if (green){
            System.out.println("行");
        }

        if (yellow){
            System.out.println("等一等");
        }






        System.out.println("^^");
    }
}
package com.angus.processControlStatement.branchingStructure;

import java.util.Scanner;

public class test3 {
    public static void main(String[] args) {
        // 这篇test3对应note1
        // 利用if语句的第二种格式
        // 这个知识点做题

        // 二选其一或者多选其一的时候我们就用这个知识点

        //题目:
        /*键盘录入一个整数,表示身上的钱。
        如果大于等于100块,就是网红餐厅。
        否则,就吃经济实惠的沙县小吃。*/

        // 分析:
        // 1.键盘录入说明要用到变量
        // 2.大于等于说明要用到关系运算符更加说明要进行判断因为关系运算符要么输出true要么输出false那也就是说还要用到boolean类型因为上面说了要用到变量
        // 如果..否则..说明要用到if else语句,因为要二选其一嘛

        Scanner scanner = new Scanner(System.in);
        System.out.println("录入一个整数,表示身上的钱");
           int money = scanner.nextInt();
           boolean re = money >= 100;
           if(re){
               System.out.println("网红餐厅");
           } else {
               System.out.println("沙县小吃");
           }

        System.out.println("^^");
    }
}
package com.angus.processControlStatement.branchingStructure;

import java.util.Scanner;

public class test4 {
    public static void main(String[] args) {
        // 这篇test4对应note1
        // 利用if语句的第二种格式
        // 这个知识点做题

        // 如果需要选择不同的情况进行输出我们就用这个知识点

        //题目:
        /*
        假设,用户在超市实际购买,商品总价为:600元。
        键盘录入一个整数表示用户实际支付的钱。
        如果付款大于等于600,表示付款成功。否则付款失败。*/

        // 分析:
        // 1.键盘录入->变量
        // 2.大于等于->关系运算符->判断->boolean
        // 3.如果..否则..->是不同情况需要进行输出

        Scanner scanner = new Scanner(System.in);
        System.out.println("录入一个整数表示用户实际支付的钱");
        int money = scanner.nextInt();
        boolean re = money >= 600;
        if (re){
            System.out.println("付款成功");
        } else {
            System.out.println("付款失败");
        }

        System.out.println("^^");
    }
}
package com.angus.processControlStatement.branchingStructure;

import java.util.Scanner;

public class test5 {
    public static void main(String[] args) {
        // 这篇test5对应note1
        // 利用if语句的第二种格式
        // 这个知识点做题

        // 如果需要选择不同的情况进行输出我们就用这个知识点

        //题目:
        /*在实际开发中,电影院选座也会使用到if判断。
        假设某影院售卖了100张票,票的序号为1~100。
        其中奇数票号坐左侧,偶数票号坐右侧。
        键盘录入一个整数表示电影票的票号。
        根据不同情况,给出不同的提示:
        如果票号为奇数,那么打印坐左边
        如果票号为偶数,那么打印坐右边。*/

        // 分析:
        // 1.键盘录入->变量
        // 2.不同的情况->判断->关系运算符->boolean
        // 3.不同的情况->if语句的第二种格式if else语句
        // 4.票的序号为1~100,说明有限制,要用到逻辑运算符来解决限制问题 事后分析: 票的序号为1~100,说明键盘录入的值也要进行判断,判断就想到关系运算符和boolean,判断之后进行不同的操作,说明要用到if语句的第二种格式if else语句
        Scanner scanner = new Scanner(System.in);
        System.out.println("键盘录入一个整数表示电影票的票号,票的序号为1~100");
        int piaoHao = scanner.nextInt();// 注意: 票的序号为1~100。
        // 注意: 票的序号为1~100。
        // 1.用boolean类型来解决 2.用三元运算符来解决

        // boolean boolean boolean yyde
        // 用三元运算符写这个题没把老子累死,而且最后还是没逃过我喜欢的 boolean

        //1.用boolean类型来解决
        boolean re = piaoHao >= 1 && piaoHao <=100;
        if(re){

        re = piaoHao % 2 == 0;// 只有一个判断语句,这里就判断完了,所以要时刻注意看看这里到底是不是写明白了是判断语句,要么输出true,要么输出false,不能输出其他的
        if (re){
            System.out.println("坐右边");
        } else {
            System.out.println("坐左边");
        }

    } else {
            System.out.println("输入错误");
        }

//        //2.用三元运算符来解决
//        String re1 = "正确";
//        String re2 = "错误";
//        String re = piaoHao >= 1 && piaoHao <=100 ? re1 : re2 ;
//        if(re == "正确"){
//
//            // 下面的判断语句,可用boolean,也可用字面量
//            // 到头来还是逃不过这一步,我更喜欢用boolean
//            // 不过我还是把字面量的用法给一下
//            // if (piaoHao % 2 == 0){
//            boolean result = piaoHao % 2 == 0;
//            if (result){
//                System.out.println("坐右边");
//            } else {
//                System.out.println("坐左边");
//            }
//
//        } else {
//            System.out.println("输入错误");
//        }

        // 总结: 这叫做if的嵌套,就是根据题目来判断要不要不断套娃

        System.out.println("^^");
    }
}
package com.angus.processControlStatement.branchingStructure;

import java.util.Scanner;

public class test6 {
    public static void main(String[] args) {
        // 这篇test6对应note1
        // 利用if语句的第三种格式
        // 这个知识点做题

        //题目:
        /*
        根据不同的分数送不同的礼物。
        如果是95~100分,送自行车一辆
        如果是90~94分,游乐场玩一天
        如果是80~89分,送变形金刚一个。
        如果是80分到0分,揍一顿。
        */

        // 不分析了,直接写
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入分数");
        int fenShu = scanner.nextInt();
        // 多个嵌套就不使用boolean类型了,使用了反而变得麻烦,前面我咋没注意到嘞
        // else是备胎,前面说的各个是分开的,其实也不完全正确,真正分开的是第一个if语句和最开始的第一个else语句,只是将第一个else语句放到了最后,这就是对应着if else语句
        // 如果有嵌套,要用到if else语句和else if语句,那就说明第一个if语句要将这两个语句包起来,实质分开的就是那个最开始的else语句,但是我们写的格式并没有清晰表明这种情况,需要自己悟
        if (fenShu >= 95 && fenShu <= 100) {
            System.out.println("送自行车一辆");//语句体1;
        } else if (fenShu >= 90 && fenShu <= 94) {
            System.out.println("游乐场玩一天");//语句体2;
        } else if (fenShu >= 80 && fenShu <= 89) {
            System.out.println("送变形金刚一个");//语句体3;
        } else if (fenShu >= 0 && fenShu <= 80) {
            System.out.println("揍一顿");//语句体4;
        }

        else {
            System.out.println("输入错误");//语句体n+1;
        }

        // 总结: 看来一味地使用boolean类型也不一定正确
        //      就比如上面这个例子,如果使用boolean类型定义变量再输出,就会变得非常冗杂,而且效率也很慢
        //      所以说遇到不同的情况就要考虑不同的方法,有时候经常使用的那个方法,也不一定是最简便的,甚至还可能会使题目(事件)的难度上升

        System.out.println("^^");
        }
    }

2. 随笔笔记

1.

流程图

2.

流程图

3.

流程图

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值