2022-07-14 第一小组 张明旭 Java基础学习记录

目录

心情

知识点

满足大驼峰式命名就是一个类

包的命名规则

工具

流程控制

成绩管理系统

数组

循环

        执行流程

break 和 continue

循环标签(也叫goto功能,不是goto语法)

foreach:增强for循环

while循环

普通for循环

加强for循环

                猜数字游戏

练习:计算器


心情

今天的知识点真的多,但还好,有很多与之前前端的相似的内容,在理解方面容易点。今天在课上做了很多有意思的练习,想做一个简易计算器、数字游戏之类的。感觉很有意思!!!希望能在Java中发现更多乐趣。。。

知识点

满足大驼峰式命名就是一个类

  1.         JDK:java开发工具包,自带一些类,但只是.class(够用)没有.java
  2.         Java中的字符串只能用双引号
  3.          引用数据类型

       

String v1 = "张三";//String没有范围

      4.要学会拼接字符串
   

     System.out.println("早上好" + v1 + ",吃饭了吗?");
        int m = 8;
        do {
            ++m;
        }while (m<8);


      5.基本数据类型有8种。
      6.除了基本数据从类型,都是引用数据类型

       7.什么是包P?--包就是文件夹,起分类作用


包的命名规则


        1、尽量使用全小写字母,一个小点(.)代表一级目录
        2、包名中尽量不要出现下换线,$号,数字
        3、一般情况下,使用站点名的逆序
              例如:www.baidu.com = 包名com.baidu.模块名
                                 包名com.baidu.架构名
                  在开发中根据实际情况写(com.baidu.模块.架构.功能.xxx)

工具


       1.Scanner 首字母大写是一个类
       2. 构建一个工具用来用键盘在控制台输入内容

        Scanner in  = new Scanner(System.in);


        3.运行停止,用键盘在控制台输入内容
       

String s = in.next();
        System.out.println("你输入了:" + s);


        4.in.next()是输入字符串,输入器大数据类型:in.next+数据类型(没有char)


流程控制


        /*例题:
        * 请输入第一个整数:
        * xxxxxxx
        * 请输入第二个整数:
        * xxxxxxxxx
        * 需求:如果第一个数是8,第二个数是9,就打印和
        *      如果其中一个是8,1有一个9,就打印两个赎回的差
        *      如果两个数中没有8,9,就分别打印两个数
        *      用if...else语句
        * 1、多重if语句:
        * if();
        * if();
        * ...
        * 每个if之间没有联系,这些if可能都运行
        * 2、if...else if...else语句:
        *      else的互斥功能:一套结构至多走一个
        *      如果情况比较多,情况判断比较复杂,最后一种情况不建议直接写else,除非有200%的把握,可以写else,否则写else if。
        * 3、我们在写if...else if的时候,要注意条件的顺序
        * 一般范围小的在上边,范围大的在下边
        *
        *
        *
        *
        * */
       

System.out.println("请输入一个整数:");
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        System.out.println("请输入另一个整数:");
        int b = in.nextInt();
        if (a == 8 & b == 9) {
            System.out.println("两个数的和为:" + (a + b));

        }else if (a == 8 || a== 9 || b == 9 || b == 8 ){
            System.out.println("两个数的差为:" + (a - b));
        }else if ((a != 8 && a != 9) && (b != 8 && b != 9)){
            System.out.println("第一个数为:" + a);
            System.out.println("第二个数为:" + b);
        }
        }

成绩管理系统


        //练习:
        /* 成绩管理系统:
        * 需求:
        *    键盘输入成绩
        *    如果成绩是60分:及格
        *    如果成绩是85分,奖励你一台iPad
        *    如果成绩是100分,奖励你一台十三香promax
        *    其他情况,没有奖励。
        *
        *
        * Java里的switch智能判断如下数据类型:
        *    整型:byte、short、int
        *    字符型:char
        *    string:必须在JDK1.7及以后版本中才能被switch判断
        *    枚举:JDK5及以后版本中才能被switch判断
        * */


        答案1:
       

Scanner in = new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        int num1 = in.nextInt();
        if (num1 == 60){
            System.out.println("及格");
        }else if(num1 == 85){
            System.out.println("奖励你一台iPad");
        }else if(num1 == 100){

           System.out.println("奖励你一台十三香promax");
        }else if(num1 != 60 & num1 !=85 & num1 != 100){
            System.out.println("没有奖励...");
        }


       答案2(老师):


        Scanner in = new Scanner(System.in);
        System.out.println("请输入你的成绩:");
        int num1 = in.nextInt();
        switch (num1){
            case 60:
                System.out.println("及格");
                break;
            case 85:
                System.out.println("奖励你一台iPad");
                break;
            case 100:
                System.out.println("奖励你一台十三香promax");
                break;
            default:
                System.out.println("没有奖励...");
        }
    }


数组


        //数组一旦声明就必须要指定长度

        //一维数组
        //声明数组三种方法:常用2、3种
        // 1、要用[]:两种写法,以下第一种好
       

 int [] a1 = {1,2,3,4,5};
        int a2[] = {1,2,3,4,5};

//        Java中[]只有声明数组长度是在等号右边,其余都出现等号左边
//        {}在等号右边

        //2、只有长度

        int [] a3 = new int [5];

        //3、有长度有值

        int [] a4 = new int[]{1,2,3,4};

        //重新赋值
 

      a4 = new int [5];
        a4 = new int[]{1,2,3,4};

        //直接输出,输出的是虚地址()

        System.out.println(a2);


        //访问数组元素通过下标(索引)
        //下标(索引)从0开始
   

     System.out.println(a2[0]);


        /*
        * 数据类型的初始值:
        * byte、short、int、long;0
        * float、double:0.0
        * char:\u0000或是‘ ’(空白)
        * Boolean:false
        * String:null
        * */

        //二维数组:二维数组中每个元素又是一个一维数组
        //数组一旦声明就必须要指定长度:二维数组只要声明一维数组的个数就可以
        int [][] b1 = new int [5][];

        //开发中最多用到二维数组,但...
        //多维数组:只需要指定n维度数组的n-1维数组长度即可(别担心,不用)

        //数组长度是属性,不是方法

        //取值
        System.out.println(a2[100]);
        //bug:下标越界bug

//        会看bug:bug原因,bug具体内容,bug位置
//        当程序出现bug,bug后续代码不运行

        //赋值
        a3[100] = 100;
        //只要越界,取值赋值都不行
    


 //练习
        /* 创建一个数组
        *通过键盘输入,给数组中元素赋值...
        * 不能用循环
        *  */


       

 int [] a = new int[3];
        Scanner sc = new Scanner(System.in);
        int a1 = sc.nextInt();
        a[0] = a1;
        System.out.println("数组第一个数为" + a1);
        int a2 = sc.nextInt();
        a[1] = a2;
        System.out.println("数组第二个数为" + a2);
        int a3 = sc.nextInt();
        a[2] = a3;
        System.out.println("数组第三个数为" + a3);
        System.out.println("数组的数据为:" + a[0] + a[1] + a[2]);

循环


        * for循环
        * 初始化条件:可用int等定义,var也可以但不用
        * 判断条件
        * 循环体
        * 循环条件
        */
        //初始化条件可以是任意类型,大部分(90%)情况使用int

     

   for (int i = 0;i< 10;i++){
            System.out.println("i=" + i);
        }


 //练习
        // 打印一个5*5的矩形
        //用循环嵌套
        //要求用不换行的打印输出


     

  for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print("*");
            }
            System.out.println();
        }


        执行流程


        1、i=0 外层for循环启动
        2、执行外层的for循环的循环体
        3、走里层的for循环(循环体)
        4、里层的for循环想要走完要从i=0到i=4
        5、里层的循环体执行完之后相当于外层执行一次
        6、然后执行外层i++
        7、在此启动外循环
        ...
         */

        /*
        debug
         */


break 和 continue


     

   for (int i = 0; i < 10; i++) {
            //需求 数7
            //从0 ~ 100,尾数是7,或7的倍数
            if (i % 7 == 1 || i % 10 == 7) {
                System.out.println("你数到了:" + i + ",喝酒吧!");
                //跳出循环
//            break;
                //continue+循环标签:终止当前次循环,并开启下一次循环
                continue;
            } else {
                System.out.println(i);
            }
            System.out.println("哈哈哈!");
        }

循环标签(也叫goto功能,不是goto语法)


       

 //可用break+循环标签,直接终止循环标签的循环继续运行循环后的代码
        a:for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.println("j=" + j);
                if (j == 3){
                    //break 和continue智能控制最近的循环
//                    break;
                    continue;
                }
                System.out.println("哈哈哈");
            }
            System.out.println("i=" + i);
        }

foreach:增强for循环


        //使用for循环遍历数组
     

  int [] arr = new int[]{12,45,76,89,-50};


        //遍历,把数组中的元素都操作一遍
   

     for (int i = 0;i < arr.length;i++){
            System.out.println(arr[i]);
        }


        //forwach语句(增强for循环)遍历数组
        //可以理解为把数组中元素通过镜像给i
        //我们操作的不是原始数据,我们操作的是镜像数据
        //所以foreach的操作更加安全,不影响原始数据
        //foreach是JDK5以后才有的
        //JDK5、JDK8是革命性的版本
 

      for (int i : arr){
            //i 就是数组中元素
            System.out.println(i+1);
        }


while循环


     

  int i = 10;
         while (i < 100){
             System.out.println(i);
             i++;
         }
         //do ...while
        int i1 = 10;
         do {
             System.out.println(i);
             i++;
         }while (i < 100);


        while和do...while的区别:
        do...while循环无论条件是否满足,循环至少执行一次。
        while循环如果条件不满足,一次都不执行。
         

//        二维数组遍历
     

  int [][] arr = new  int[2][];
        arr[0] = new int[]{1,2,3,4};
        arr[1] = new int[]{-1,-2,-3,-4,-5};


    //取出第一堆数组里的第二个元素
       

System.out.println(arr[1][2]);

普通for循环


   

    for (int i = 0; i < arr.length; i++) {           

        for (int j = 0; j < arr[i].length; j++) {


                //获取二维数组的元素

                System.out.println(arr[i][j]);
            }
            System.out.println();
        }

加强for循环


     

   for (int [] ints : arr){
            for (int anInt : ints){
                System.out.println(anInt + "、");
            }
            System.out.println();
        }


        
猜数字游戏


        键盘输入一个数字用一个变量存起来
        猜猜输入的是什么?
         
        
        请输入一个数字:
        20
        数字保存成功,猜猜数字是几
        比较大小,如果大了,就提示大了,如果小了就提示小了
        知道猜到这个数
        用哪种循环、判断都行
         


        答1:
       

 Scanner s = new Scanner(System.in);
        System.out.println("请输入一个数字");
        int numi = s.nextInt();
        System.out.println("数字保存成功!请猜猜这是数字几");
        m:for (;;){ int num2 = s.nextInt();
            if (num2 > numi){
                System.out.println("猜大了哦,再猜猜看!");
                continue m;
            }else if (num2 < numi){
                System.out.println("猜小了哦,再猜猜看!");
                continue m;
            }else{
                System.out.println("恭喜你猜对啦!!!");
                break;
            }
        }


        答2:
       

 Scanner s = new Scanner(System.in);
        System.out.println("请输入一个数字");
        int numi = s.nextInt();
        System.out.println("数字保存成功!请猜猜这是数字几");
        while (true) {
            int num2 = s.nextInt();
            if (num2 > numi) {
                System.out.println("猜大了哦,再猜猜看!");
            } else if (num2 < numi) {
                System.out.println("猜小了哦,再猜猜看!");
            } else {
                System.out.println("恭喜你猜对啦!!!");
                break;
                //终止程序执行
                //0:安全退出(一般不用)
                //-1:强制退出(用的不多)
                //System.exit(0);
            }
        }

练习:计算器


        从键盘输入两个数和一个字符
        加减乘除
        打印输出计算结果
        注意:
           除数不能为0
           符号输入不对怎么办
           计算器能不能一直算下去
           《会运用到死循环for(;;){}!!!!!》

要求:


        请输入第一个数:
        2
        请输入第二个数:
        2
        请输入运算符号:
        *
        计算结果为:2*2=4
        是否继续计算:
        1、是
        2、否
        (如果输入3怎么办)
         

        答1:没有是否进行计算功能
     

  Scanner s = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        double num1 = s.nextDouble();
        System.out.println("请输入运算符号:");
        String a = s.next();
        System.out.println("请输入第二个数:");
        double num2 = s.nextDouble();
        if (a == "/" & num2 == 0){
            System.out.println("除数不能为0,请重新输入:");
       }else {
          switch (a) {
                case "+":
                    System.out.println(num1 + "+" + num2 + "=" + (num1 + num2));
                    break;
                case "-":
                    System.out.println(num1 + "-" + num2 + "=" + (num1 - num2));
                    break;
                case "/":
                    System.out.println(num1 + "/" + num2 + "=" + (num1 / num2));
                    break;
                case "*":
                    System.out.println(num1 + "*" + num2 + "=" + (num1 * num2));
                    break;
                default:
                    System.out.println("请输入运算符号:");
            }

        }

        答2:
       

Scanner sc = new Scanner(System.in);
        index:for(;;){
            System.out.println("请输入第一个数:");
            double num1 = sc.nextDouble();
            n2:for(;;){
                System.out.println("请输入第二个数:");
                double num2 = sc.nextDouble();
                fh:for(;;){
                    System.out.println("请输入运算符号:+-*/");
                    String sep = sc.next();
                    switch(sep){
                        case "+":
                            System.out.println(num1 + sep + num2 + "=" + (num1 + num2));
                            break;
                        case "-":
                            System.out.println(num1 + sep + num2 + "=" + (num1 - num2));
                            break;
                        case "*":
                            System.out.println(num1 + sep + num2 + "=" + (num1 * num2));
                            break;
                        case "/":
                            if(num2 == 0){
                                System.out.println("除数不能为0,计算错误...");
                                continue n2;
                            }else {
                                System.out.println(num1 + sep + num2 + "=" + (num1 / num2));
                                break;
                            }
                        default:
                            System.out.println("符号输入错误,请重新输入...");
                            continue fh;
                    }
                    c:for(;;){
                        System.out.println("是否继续计算:1、继续  2、退出");
                        String flag = sc.next();
                        // 我让你输入1或者2,你非得输入3,结果就是你去重新选择
                        switch (flag){
                            case "1":
                                // 继续计算
                                continue index;
                            case "2":
                                // 退出计算
                                System.out.println("计算器即将关闭,谢谢使用...");
                                break index;
                            default:
                                // 再重新让你选择一次
                                System.out.println("您输入的有误,请重新选择!!!");
                                continue c;
                        }
                    }

                }

            }

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值