20220714 第二小组 罗大禹 学习笔记

Java

今日重点

  1. 流程控制语句:
  2. 循环

学习心得

今天上课做练习时,我写的代码有许多欠考虑的地方,比如没有提示;而老师的代码更加明了,学到了很多东西,明天继续加油

学习内容

包(理解)

什么是包???

  实质上就是文件夹
  作用:分门别类

包的命名规则(行业规范):
  1. 尽量使用全小写字母
  2. 包名尽量不要出现 _ $ 123
  3. 一般情况下,使用站点名的逆序 eg :www.123.com
                  包名:com.123.模块名
                     com.123.架构名
              根据实际情况 com.123.模块.架构.功能.xxx
                     一个点就代表一级

引用数据类型(理解)

  首字母大写(大驼峰且一个单词)即为类
​  JDK提供的类只有.class,没有.java

基本数据类型有8种,引用数据类型有多少种?
  除了基本数据类型,都是引用数据类型

点击查看代码
public class Ch01 {
    public static void main(String[] args) {
        //String :字符串
        //Java中的字符串只能用双引号,目前可理解为String没有范围
        String v1 = "张三";
        ///要学会拼接字符串
        //eg :
        System.out.println("早上好" +  ",吃饭了没");
       
    }
}

工具(理解)

  1. 键盘输入

该工具具有返回值,在控制台里输入的值为其返回值

点击查看代码
package com.morinng;

import java.util.Scanner;

public class Ch02 {
    public static void main(String[] args) {

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


    }
}

流程控制语句:(理解)

1、if...else...

点击查看代码
语法:if(条件表达式){
       要执行的代码们;
}else{
      要执行的代码们;
}
1.多重if

​ 每个if之间没有联系,这些if有可能都执行
​ if...else if ... else
​ else互斥功能,一套结构种至多执行一个

2.if...else if ... else

​ 我们在写if..else if...的时候,要注意条件的顺序,范围小的写在上面,若范围大的写在了上面,可能会导致范围小的没有用了
​ if(a>o){
​ xxxx
​ }else if (a>-1){
​ xxxxx

​ }

3.注意

​ 如果情况比较多,条件判断比较复杂,最后一种情况不建议直接写else
​ 最后面必须有百分之二百的把握,可以写else
​ 否则写else if

练习
点击查看代码
package com.morinng;

import java.util.Scanner;

public class Ch03 {
    public static void main(String[] args) {
        /*
            请输入第一个整数:
            xxxxxx
            请输入第二个整数:
            xacacc
            需求:
                如果第一个数是8并且第二个数是9 ,就打印两个数的和
                如果有一个8,有一个9,就打印差
                如果两个数既没有8也没有9,就分别打印两个数
                if...else...
         */
        Scanner in = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int i1 = in.nextInt();
        System.out.println("请输入第二个整数:");
        int i2 = in.nextInt();
       
        if ((i1 == 8) && ( i2 == 9)) {
            System.out.println(i1 + "+" + i2 +"=" + (i1 + i2));
        } else if ((i1 == 9) || ( i1 == 8) || (i2 == 9)||(i2 ==8)) {
            System.out.println(i1 + "-" + i2 + "=" + (i1 - i2));
        }else if ((i1!=8)&&(i2!=9)&&(i1!=9)&&(i2!=8)){
            System.out.println("两个数分别为:" + i1 + "," + i2);
        }
    }
}

2、switch...case:

点击查看代码
语法

switch(表达式){
       case选项1 :
        		要执行的代码
                break
       case选项2 :
        		要执行的代码
                break
       ......
       default:
       			要执行的代码
       }

当表达式的值在case中匹配成功,会执行对应的代码,但是停不下来,后面的代码会继续执行,加了break后会停下来

1.Java中的switch只能判断如下数据类型
  1. 整型:byte short int

  2. 字符型:char

  3. 字符串 String:要求必须在JDK7以后的版本包括7

  4. 枚举:要求JDK5以后的版本包括5

2.注意

​ switch结构清晰,简明扼要,但不要强行用switch
​ 注意break的作用;
​ default的位置比较灵活,但别乱放

练习
点击查看代码
package com.morinng;

import java.util.Scanner;

public class Ch04 {
    public static void main(String[] args) {
        /*
            成绩管理系统
            键盘输入成绩
            如果成绩是60分,及格
            如果成绩是85分,奖励一个ipad
            如果成绩是100分,奖励你一台十三香promax
            其他情况,没有奖励
         */
        Scanner in =new Scanner(System.in);
        System.out.println("请输入你的成绩" );
        byte score = in.nextByte();
        switch (score){
            case 60 :
                System.out.println("及格" );
                break;
            case 85 :
                System.out.println("奖励你一台ipad");
                break;
            case 100 :
                System.out.println("奖励你一台十三香promax" );
                break;
            default:
                System.out.println("没有奖励");
        }
    }
}

数组(理解)

数组

数组一旦声明,必须指定长度

//写法

/*第一种*/int [] a1 = {1,2,3,4,5};
		//或
		 int a1 [] = {1,2,3,4,5};
/*第二种*/int [] a2 = new int[5];
/*第三种*/int [] a3 = new int[] {1,2,3,4};

 		 int [] a4;
		 a4 = new int[]{1,2,3,4};
点击查看代码
public class Ch05 {

    public static void main(String[] args) {
      	//一维数组
        int [] a1 = {1,2,3,4,5};
        //二维数组(每个二维数组里的元素都是一维数组)
        //二维数组以上都成为多维数组
        //开发中,最多用到二维
        int[][] [] a2 = new int[5][][];
        int [] a3 = new int[]{1,2,3,4};

        // 访问数组元素通过下标(索引)
        // 下标、索引从0开始
        // 取值
        System.out.println(a3[0]);
        // 赋值
        a3[0]=1;

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

        a3[100] = 100;
        // 数组的长度是属性,而不是方法
        System.out.println(a3.length);
    }
}

数据类型的初始值:

     byte、short、int、long:0
     float、double:0.0
     char:\u0000=>' '
     boolean:false
     String:null
     int[]:null

练习

点击查看代码
package com.morinng;

import java.util.Scanner;

public class Ch06 {
    public static void main(String[] args) {
        /*
            创建一个数组[3]
            通过键盘输入,给数组中的元素赋值
            不能有循环
         */
//我的代码
        Scanner in = new Scanner(System.in);
        int []a1 =new int [3];
        int b1 = in.nextInt();
        int b2 = in.nextInt();
        int b3 = in.nextInt();
        a1[0] = b1;
        a1[1] = b2;
        a1[2] = b3;
        System.out.println(a1[0]+"," +a1[1]+","+a1[2]);



//老师的代码 
        int i = 0;
        System.out.println("请输入第一个数:");
        a1[i]=in.nextInt();
        i++;
        System.out.println("请输入第二个数:");
        a1[i]=in.nextInt();
        i++;
        System.out.println("请输入第三个数:");
        a1[i]=in.nextInt();
        System.out.println("数组的数据为" + a1[0]+"," +a1[1]+","+a1[2]);

    }
}

循环(理解)

1、for循环语句

语法

   初始化条件
   循环体
   循环条件

  //eg
       for(int i=0;i<10;i++){
           System.out.println("i="+1);
       } 
//
注意

​ 初始化条件实际上可以是任意类型,只不过大部分情况我们使用的是int

练习
点击查看代码
public class Ch02 {
    public static void main(String[] args) {
        /*  需求:
        输出一个5*5的(*)矩形:
            *****
            *****
            *****
            *****
            *****
         *  用循环的嵌套
         *  需要用到不换行的打印输出...
         */

        //不换行输出为  System.out.print();
        for (int i = 0; i < 5; i++) {
            /*  分析
                执行流程:
                1、i=0 外层的for循环启动
                2、执行外层的for循环的循环体
                3、走里层的for循环(循环体)
                4、里层的for循环想要走完j==0--j==4打印了5次*号
                5、里层的for循环走完了之后,相当于外层循环的循环体执行完毕
                6、也就是i=0这次外层循环执行完毕,开始执行i++
                7、i=1,外层的循环再次启动
             */
            for (int j = 0; j < 5; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
        }
    }


debug工具

​ 在使用debug之前,需要在程序上打一个断点,调试完毕把断点去掉

break和continue

跳出循环
  break
终止当前次循环,开启下一次循环
  continue;

点击查看代码
package com.afternoon;

public class Ch04 {
    public static void main(String[] args) {
        /*
            循环的标签:功能叫:goto语法 goto功能
         */
        a:for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.println("j=" + j);
                if(j==3){
                    /*
                        break和continue只能控制离他们最近的循环,若想控制其他循环,需要给该循环加个标签,然后在break 或 continue 后加上该标签
                     */
                    //停止a
//                    break :a;
                    continue;
                }
            }
            System.out.println("i="+i);
        }
    }
}

2、foreach——增强for循环

点击查看代码
package com.afternoon;

public class Ch05 {
    public static void main(String[] args) {
        //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]);
        }

        //foreach语句(增强for循环)遍历数组
        /*
            可以理解为把数组中的元素通过:镜像给i
            我们操作的不是原始数据,我们操作的是镜像数据
            foreach的操作更加的安全,不影响原始数据
            foreach是JDK5以后才有的
         */
        for (int i : arr) {
            System.out.println(i+1);
        }
        //i就是数组中的元素
    }
}

3、while循环

	int a = 10
        while(a<100){
            a++;
        }

4、do...while循环

	do{
            System.out.println(i);
            i++;
        }while (i<20);

while和do..while的区别:

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

二维数组遍历

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

            }
            System.out.println();
        }
posted @   怂还嘴硬  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示