2022-07-14 闫馨月 第七小组 学习笔记

目录

引用数据类型

 包

流程控制

数组

For循环

嵌套循环

数组的遍历

foreach

猜数字


引用数据类型

除了基本数据类型之外的,如String


package com.jsoft.moring;

public class Test1 {
    public static void main(String[] args) {
        String v1="HelloWorld";
        System.out.println(v1);
        //拼接字符串
        System.out.println("你好" + v1 + "世界");
        
    }
}

 包

实质上就是文件夹。


包的命名规则:

1.尽量使用全小写字母

2.包名当中尽量不要出现_    &  66

3.一般情况下,使用站点名的逆序:www.baidu.com

包名:com.baidu.模块名(search)

com.baidu.架构名

根据实际情况com.baidu.模块  架构 功能.××××一个点代表一级,文件夹的嵌套关系。


Scanner(首字母大写,是类)

// 构建一个工具,键盘输入
        Scanner in = new Scanner(System.in);
        // 开始输入
        String sr = in.next();
        System.out.println("你输入了:" + sr);
//.out:打印输出
//.in:输入,在控制台输入

流程控制

package com.jsoft.morning;

import java.util.Scanner;

public class Ch03 {

    public static void main(String[] args) {
        // 流程控制
        /*
            请输入第一个整数:
            xxxxxxx
            请输入第二个整数:
            xxxxxxx
            需求:
                1.如果第一个数是8,并且第二个数是9,就打印两个数的和
                2.如果其中有一个是8,有一个9,就打印两个数的差
                3.如果两个数中既没有8也没有9,就分别打印两个数
         */
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个数:");
        int num2 = sc.nextInt();
   
        if (num1 == 8 && num2 == 9) {
            System.out.println(num1 + "+" + num2 + "=" + (num1 + num2));
        }else if(num1 == 8 || num1 == 9 || num2 == 8 || num2 == 9){
            System.out.println(num1 + "-" + num2 + "=" + (num1 - num2));
        } else if(num1!=8&&num2!=9&&num1!=9&&num2!=8) {
            System.out.println("两个数分别为:" + num1 + "," + num2);
        }
    }
}

 if(条件表达式){
          要执行的语句
         }
多重if
        每个if之间没有联系,这些if有可能都执行
         if(a == 10)
        if(b == 20)
         if...else if........else...
        else 互斥的功能,一套结构中就至多走一个

在写if...else if的时候,要注意条件的顺序
        int a = 10;
         if(a > -1){
         xxxxx
       }else if(a > 0){
         xxxx
      }

如果情况比较多,条件判断比较复杂,最后一种情况不建议直接写else,最后面必须非常有把握,可以写else,否则,还是写else...if

例:

/*   成绩管理系统
            键盘输入成绩
            如果成绩是60分,及格
            如果成绩是85分,奖励你一台ipad
            如果成绩是100分,奖励你一台十三香promax
            其他情况,没有奖励。*/


package com.jsoft.moring;

import java.util.Scanner;

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

        Scanner pm = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int pt = pm.nextInt();
//        String str="你好";
        switch (pt){
            case 60:
                System.out.println("及格!");
            break;
            case 85:
                System.out.println("奖励你一台ipad");
            break;
            case 100:
                System.out.println("奖励你一台十三香ProMax");
                break;
            default:
                System.out.println("没有任何奖励");
        }
    }
}

switch :case

java里的switch只能判断:
①整型:int byte short
②浮点型float:都不行
③字符型:char
④布尔型:都不行

String:必须在jdk1.7(7)以后的版本,包括7

枚举:JDK5以后的版本包括5

switch结构清晰,简明扼要。不要强行用switch

break的作用:不写停不下来

default的位置是灵活的,不能乱放

数组

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


package com.jsoft.morning;

public class Ch05 {

    public static void main(String[] args) {
//        一维数组
        int [] a1 = {1,2,3,4,5};
//        int a2[] = {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};
        // [I@6a5fc7f7
        // 访问数组元素通过下标(索引)
        // 下标、索引从0开始
        /*
            数据类型的初始值:
            byte、short、int、long:0
            float、double:0.0
            char:\u0000=>' '
            boolean:false
            String:null
            int[]:null
         */
        // 取值
        System.out.println(a3[0]);
        // 赋值
        /*
            当程序抛出异常时,出现异常的位置后面的代码不会执行
         */
        a3[100] = 100;
        // 数组的长度是属性,不是方法
        System.out.println(a3.length);
    }
}

For循环

for (初始化语句;循环条件;迭代语句) {

                循环体语句(重复执行的代码);

}

package com.jsoft.afternoon;

public class Ch01 {

    public static void main(String[] args) {
      
  var i = 10;
     System.out.println(i);
        /*
            初始化条件实际上可以是任意类型,只不过大部分情况我们使用的是int
         */
     for(int i = 0;i < 10;i++){
           System.out.println("i=" + i);
   }
       for(int i = 10;i > 0;i--){
          System.out.println("i=" + i);
       }
    }
}

嵌套循环

循环中包含循环

                

 特点:外部循环每循环一次,内部循环全部执行完一次

package com.jsoft.afternoon;

public class Ch01 {

    public static void main(String[] args) {

        for (int i = 0; i < 5; i++) {
            System.out.println("----------");
            for (int j = 0; j < 3; j++) {
                System.out.println("我爱你");
            }
        }

    }
}

打印输出矩形 

package com.jsoft.afternoon;

public class Ch02 {

    public static void main(String[] args) {
        /**
         *     *****
         *     *****
         *     *****
         *     *****
         *     *****
         *     矩形
         *     用循环的嵌套
         *     需要用到不换行的打印输出....
         */
        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();
        }
    }

}

跳转语句

break:跳出并结束当前所在循环的执行(只能用于结束所在循环,或者结束所在switch分支的执行)

continue:用于跳出当前循环的当次执行,开启下一次循环(只能在循环中进行使用)

package com.jsoft.afternoon;

public class Ch03 {

    public static void main(String[] args) {
        // break和continue
        for (int i = 1; i < 10; i++) {
            // 需求 数7
            // 从0到100 尾数是7或者是7的倍数
            if(i % 7 == 0 || i % 10 == 7){
                System.out.println("你数到了:" + i + ",喝酒吧!");
                // 跳出循环
                break;
             
            }
        }
    }
}

continue:

package com.jsoft.afternoon;

public class Ch03 {

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

计算器:

package com.jsoft.afternoon;

import java.util.Scanner;

public class Calculator {

    public static void main(String[] args) {
       
        // 可以理解为是准备了一个键盘
        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;
                        }
                    }

                }

     }

        }
    }
}

数组的遍历


foreach

forEach是最简单、最常用的数组遍历方法,它提供一个回调函数,可用于处理数组的每一个元素,默认没有返回值。

package com.jsoft.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) {
            // i就是数组中的元素
            System.out.println(i+1);
        }
    }
}

猜数字

package com.jsoft.afternoon;

import java.util.Random;
import java.util.Scanner;

public class DoWhile {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        Random random=new Random();
        System.out.println("请输入一个数字:");
        int guess=random.nextInt(20);
        while (true){

            int gue=scanner.nextInt();
            if (guess<gue){
                System.out.println("大了");
            } else if (guess>gue) {
                System.out.println("小了");
            } else  { //  else if (guess==gue)
                System.out.println("恭喜你,猜对了!");
                break;
            }
        }

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值