I want to make big money|

2022-7-14 第三小组 甘源册 学习笔记

知识点掌握情况

  • 引用数据类型(理解)
  • 一维数组,二维数组(理解)
  • 分支结构(理解)
  • 循环结构(理解)

学习心情(心路历程)

今天学的知识很多都是js讲过的,只是略有不同,所以学起来很轻松,学习心情不错

1.数据类型

1.1引用数据类型

1.1.1 String

  • Java中的字符串只能用双引号

  • 所有引用数据类型的初始值是null

  • 除了基本数据类型都是引用数据类型;

  • 例子

    • // String类是jdk提供的
              String str=new String();    //  首字母大写就是类(满足了大驼峰式运算)
              str="你不好";              // String没有范围
              String str1="你好";
              // 字符串拼接+
              System.out.println(str1+str);
      

1.1.2 Scanner

  • //构建一个工具,键盘输入
            Scanner scanner = new Scanner(System.in);
            //开始输入
            String next = scanner.next();
            System.out.println("你输入了"+next);
    

1.1.3 一维数组

  • Java当中的数组一旦声明,必须指定长度

  • 数组一定有长度,没有就报错

  • 声明数组的方式

    • 直接赋值(忘掉不用)

      •     int a1 []={1,2,3,21,4,5};
            int [] a2={11,312,13,211,42,531};
        
    • 声明长度

      •     int [] a3=new int[10];
        
    • 先声明,在赋值

      • int [] a4;
        a4 = new int[]{1,3,141};
        
  • /**需求:
            * 创建一个数组[3]
            * 通过键盘输入,给数组中的元素赋值。。。
            * 不能用循环
            */
      
           int [] a=new int[3];
           Scanner scanner = new Scanner(System.in);
           a[0] = scanner.nextInt();
           a[1] = scanner.nextInt();
           a[2] = scanner.nextInt();
           System.out.println("数组里的内容为:{"+a[0]+","+a[1]+","+a[2]+"}");
    /**结果:
            * 21
            * 31
            * 41
            * 数组里的内容为:{21,31,41}
            * */
    

1.1.4 二维数组

  • 开发中最多用到二维

  • int  [][]a=new int[4][];  // 二维数组a里有4个一维数组
    

1.2包

  • 包的命名规则:
    • 尽量使用全小写
    • 尽量不要出现 _ $ 甚至数字.
    • 一般情况下是使用站点名的逆序
      • com.baidu.模块名/架构名/功能名(尽量分类一目了然)

2 流程控制

2.1分支结构

2.1.1 if...else

  • 情况复杂,不建议最后用else

  • 注意事项

    • 多重if
      • 每个if之间没有联系,这些if都有可能执行
    • if...else if
      • else互斥功能,一套循环结构至多走一个
  • 写判断一定要把范围大的写上边,范围小的写下边

  • 逻辑上的问题一旦出错,后果很严重

  • //需求
           //1.如果第一个数是8,并且第二个数是9,就打印两个数的和
           // 2.如果其中有一个是8,有一个9,就打印两个数的差
           //3.如果两个数中既没有8也没有9,就分别打印两个数
      
           System.out.println("输入第一个整数");
           Scanner scanner = new Scanner(System.in);
           int i = scanner.nextInt();
           System.out.println("输入第二个是整数");
           Scanner scanner1 = new Scanner(System.in);
           int i1 = scanner1.nextInt();
      
           if (i == 8 && i1 == 9) {
               System.out.println("两个数的和为:" + (i + i1));
           } else if (i == 8 || i == 9 || i1 == 9 || i1 == 8) {
               System.out.println("两个数的差为:" + (i > i1 ? i - i1 : i1 - i));
           } else if (i != 8 && i != 9 && i1 != 8 && i1 != 9) {
               System.out.println("第一个整数为:" + i);
               System.out.println("第二个整数为:" + i1);
           }
    

2.1.2 switch...case

  • /**需求
             * 成绩管理系统键盘输入成绩
             * 如果成绩是60分,及格
             * 如果成绩是85分,奖励你一台ipad
             * 如果成绩是100分,奖励你一台十三香promax
             * 其他情况,没有奖励。
             */
    
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入成绩");
            int i = scanner.nextInt();
            switch (i){
                case 60:
                    System.out.println("及格");
                    break;
                case 85:
                    System.out.println("奖励你一台iPad");
                    break;
                case 100:
                    System.out.println("奖励你一台十三香promax");
                    break;
                default:
                    System.out.println("没有奖励");
            }
    
  • Java里的switch只能判断如下数据类型

    • 整型:byte,short,int
    • 字符型:char
    • String (要求:必须在JDK7以后的版本包括7)
    • 枚举 (要求:必须JDK5以后的版本包括5)
  • 优点:效率高,结构清晰简明扼要

  • 不要强行用switch...case

  • default的位置比较灵活,但是别乱放

2.2顺序结构

  • 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

2.3循环结构

2.3.1 for循环

  • 初始化条件(大部分用int)——循环条件——循环体——判断条件

  • /**需求:
             * 矩形
             * 用循环的嵌套
             * 需要用到不换行的打印输出....
             * */
    
            for (int i = 0; i <5 ; i++) {
                for (int j = 0; j <12 ; j++) {
                    System.out.print("*");
                }
                System.out.println();
            }
    
  • break; 终止循环

  • continue 终止这一次循环,开启下一次循环

  • break和continue:他们只能控制离他们最近的循环

    • 可以给for加标签让break去终止除了离他最近的其他循环

    •         a:for (int i = 0; i <10 ; i++) {
                  for (int j = 0; j <10 ; j++) {
                      System.out.println("a");
                      break a;
                  }
              }
      

2.3.2 for...each(增强for循环)

  •         int [] arr=new int[]{12,41,251,13,125,21};
            // 遍历把数组中的元素都操作一遍
            for (int arr1:arr) {
                // arr1就是数组中的元素
                System.out.print(arr1+" ");
            }
    
  • 可以理解为把数组中的元素通过:镜像给i,我们操作的不是原始数据,我们操作的是镜像数据

  • foreach的操作更加的安全,不影响原始数据

2.3.3 while() 循环

  •         int i=19;
            while ( i <100){
                System.out.println(i);
                i++;
            }
    

2.3.4 do...while() 循环

  •         int i1=20;
            do {
                System.out.println(i1);
                i1++;
            }while (i1<100);
    
  • do...while()与while()的区别:前者不管条件成不成立都至少执行一次,后者条件不成立一次都不执行

3.注意事项

  • 当程序抛出异常时,出现异常的位置后面的代码不会执行

3.1debug操作

  • 打断点,看程序的运行流程,方便学习与找bug

3.2终止程序执行的方式

// 0 安全退出
// -1 强制退出(一般情况用它)
System.exit(0);
System.exit(-1);

4.计算器

public static void main(String[] args) {

        a:
        for (; ; ) {

            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入第一个数");
            int a = scanner.nextInt();
            System.out.println("请输入第二个数");
            c:
            for (; ; ) {
                int b = scanner.nextInt();
                if (b == 0) {
                    System.out.println("除数不能为0,请重新输入:");
                    continue c;
                }
                System.out.println("请输入符号");
                b:
                for (; ; ) {
                    String next = scanner.next();
                    switch (next) {
                        case "+":
                            System.out.println("计算结果为:" + a + "+" + b + "=" + (a + b));
                            break;
                        case "-":
                            System.out.println("计算结果为:" + a + "-" + b + "=" + (a - b));
                            break;
                        case "*":
                            System.out.println("计算结果为:" + a + "X" + b + "=" + (a * b));
                            break;
                        case "/":
                            System.out.println("计算结果为:" + a + "➗" + b + "=" + (a / b));
                            break;
                        default:
                            System.out.println("符号输入不对,请重新输入符号:");
                            continue b;
                    }
                    for (; ; ) {
                        System.out.println("是否继续计算  1:是  2:否");
                        int anInt = scanner.nextInt();
                        switch (anInt) {
                            case 1:
                                continue a;
                            case 2:
                                System.out.println("谢谢使用!");
                                break a;
                            default:
                                continue;
                        }
                    }
                }
            }
        }
    }

4.1菱形

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

        for (int i = 1; i <=5 ; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print(" ");
            }
            for (int j = 11; j >=i*2+1 ; j--) {
                System.out.print("*");
            }

            System.out.println();
        }

4.2空心菱形

        for (int i = 0; i < 5; i++) {
            for (int j = 5; j >i ; j--) {
                System.out.print(" ");
            }
            for (int i1 = i; i1 <=i; i1++) {
                System.out.print("*");
            }
            for (int i1 = 0; i1 < i*2; i1++) {
                System.out.print(" ");
            }
            for (int i1 = i; i1 <= i; i1++) {
                if (i==0){
                }else {
                    System.out.print("*");
                }
            }
            System.out.println();
        }


        for (int i = 0; i < 6; i++) {
            for (int i1 = i; i1 > 0; i1--) {
                System.out.print(" ");
            }
            for (int i1 = i; i1 <= i; i1++) {
                if (i1 == 5) {

                } else {
                    System.out.print("*");
                }
            }
            for (int i1=2*i;i1<10;i1++){
                System.out.print(" ");
            }for (int i1 = i; i1 <= i; i1++) {
                    System.out.print("*");
          }
            System.out.println();
        }

本文作者:(≧∇≦)(≧∇≦)(≧∇≦)

本文链接:https://www.cnblogs.com/gycddd/p/16478623.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   (≧∇≦)(≧∇≦)(≧∇≦)  阅读(26)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起