栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA基础笔记--(上课的笔记4)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA基础笔记--(上课的笔记4)

1 循环结构

1.1 for 循环

1.2 while 循环

while循环和for循环的比较

  1. 他俩在技术上没有任何的区别, 能用for的地方 可以使用while替换, 能用while的地方 也可以使用for来替换。

  2. 所有程序员的使用循环的习惯,都是这样的, 把for循环用在 有明确范围的地方, while循环 使用在 没有明确范围的地方。

1.3 dowhile 循环

格式

do{ ​ 循环体; }while (条件判断);

do{
    System.out.println("helloworld");
}while (true);
int i = 1;
do{
    System.out.println("HelloWorld");
    i++;
}while(i<=3);

案例:键盘录入一个 数字, 判断数字是否在1-100之间, 如果不是就重新录入,直到你录入1-100为止。

import java.util.Scanner;
public class Demo4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        
        
        
​
        // 循环 优化上面的代码, 优化重复度。  但是 此处的这个while 还有重复。 
​
        int a;
        do{
            a = sc.nextInt();
        }while (a<1 || a>100);  // 执行流程  第一次执行 不判断。  从第二次开始 先判断后执行。
​
        // 因为 95%以上的程序员 在遇到这种情况的时候 想不起来使用dowhile 
​
        while (true){
            int b =  sc.nextInt();
            if (b >=0 && b<=100){
                break;
            }
        }
​
    }
}

1.4 循环中断语句

break; 用来结束循环的。 只能写在 switch和 循环之中。

for (int i =1; i<=10; i++){
    System.out.println("helloworld"); //1 2 3 4 5 6
    if (i==6){
        break;
    }
}

continue; 继续 总共循环n次, continue只把其中一次断掉 后续的循环继续。 只能写在 循环中。

for (int i = 1; i<=365; i++){
    if (i %7 ==0 ){
        continue;
    }
    System.out.println(i+"工作");  //1 2 3 4 5 6 8 9..  
}
2 Random

用来生成随机数的。

import java.util.Random;
public class Demo7 {
    public static void main(String[] args) {
        //Random  用来生成随机数的。
        Random r = new Random();
            
        int a = r.nextInt(10); // 生成一个 0-10之间的数  [0 -10 )
        System.out.println(a);
        
        int b = r.nextInt(100); // [0-100)
        int c = r.nextInt(100) +1; // [0-99] + 1 = [1-100]  
    }
}
3 综合案例:猜数字小游戏

import java.util.Scanner;
import java.util.Random;
public class Demo6 {
    public static void main(String[] args) {
        
        Random r = new Random();
        Scanner sc = new Scanner(System.in);
        int num = r.nextInt(100)+1; //生成一个随机数 1-100之间
        int small = 1;
        int big = 100;
        while (true){
            int a = sc.nextInt();
            if (a>num){
                big = a;
                System.out.println("您猜的大了 应该在" + small +" - "+ big+ "之间");
            }else if (a< num){
                small =a;
                System.out.println("您猜的小了 应该在" + small +" - "+ big+ "之间");
            }else {
                System.out.println("恭喜您答对了");
                break;
            }
        }
    }
}
​
4 idea

4.1 idea软件提高开发效率:

notepad 记事本 ​ editplus 高级记事本。 ​ idea 高级开发工具 (今后开发就用他了。)

4.2 idea版本:

2017版 最多支持到 jdk10 ​ 2018版 最多支持到 jdk11, jdk12不支持。 ​ 2019版 支持jdk12 jdk13 不支持jdk14 ​ 2020版 都支持。

4.3 管理java文件的目录结构:

总目录, 以后 所有的idea产生的 所有的文件 基本上都会在这里面。 D:developideaProjects ​ 项目目录 ​ 模块目录 ​ 包目录 ​ java文件

4.4 idea的快捷键:

psvm + 回车 快速生成main方法 ​ sout + 回车 快速生成输出语句 ​ Alt + 1 打开 隐藏工程目录结构 ​ Alt + 4 打开 隐藏控制台

Ctrl + D 向下复制一行 ​ Ctrl + X 剪切当前行 ​ Ctrl + alt + L 格式化代码 ​ Alt+ enter 代码修正提示 ​ Ctrl + / 批量加入单行注释,再按一次就是取消 ​ Ctrl + shift + / 批量加入多行注释,再按一次就是取消 ​ Alt + shift + ↑ 上移当前行 ​ Alt + shift + ↓ 下移当前行

true.if ​ 5.fori ​ 某某.var

4.5 idea 操作模块

4.6 idea 操作项目

5 数组

5.1 数组的归属体系

数据类型 ​ 基本类型(基本数据) ​ 整数 byte short int long ​ 小数 float double ​ 布尔 boolean ​ 字符 char ​ 引用类型(综合数据) ​ 数组 ——顾名思义 : 一组数据 所以数组是用来 盛 一组数据(多个数据)的 ​ 类 ​ 接口

5.2 定义格式

第一种

数据类型[] 名称 = new 数据类型[数组的长度];

int[] arr = new int[3]; // 0 0 0
System.out.println(arr); //  [I@50cbc42f
                    // 这是 数组的内存地址
​

​

第二种:

int[] arr = new int[]{3,5,8};  // 数组 array
​
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);

第三种

int[] brr = {3,5,8,6,2};
System.out.println(brr[0]);
System.out.println(brr[1]);
System.out.println(brr[2]);
System.out.println(brr[3]);
System.out.println(brr[4]);
​
// 注意事项:
//int a = 10;
int a ;
a = 10;
​
int[] arr;
arr = new int[3];
​
int[] brr;
brr = new int[]{3,7,9};
​
int[] crr;
//crr = {5,6,7}; //编译报错

5.3 数组的访问

索引(角标): 数组容器里面的内容 是有编号的, 从0开始 到 长度-1 , 只能通过编号去访问。

int[] arr = new int[3];
​
System.out.println(arr[0]); //0
​
arr[0] =10;
​
System.out.println(arr[0]); //10

5.4 数组的内存图

一个数组的内存图

int[] arr = new int[3];
System.out.println(arr); // 0xabc123
​
arr[0] = 10;
System.out.println(arr); // 0xabc123

两个数组的内存图

int[] arr = new int[3];
System.out.println(arr[0]); //0
​
int[] brr = new int[3];
brr[0] = 10;
System.out.println(arr[0]); //0

两个变量指向同一个数组的内存图

int[] arr = new int[3];
System.out.println(arr[0]); //0
​
int[] brr = arr;
brr[0] = 10;
System.out.println(arr[0]); //10

数组常见的问题

1: 空指针异常

所有的引用类型 最常见的一个异常了

//为什么会出现这个异常呢 : 用null去调用了内容
int[] arr = null;
System.out.println(arr[0]); //NullPointerException 

2:索引越界异常

数组最常见的异常

// 为什么会出现这个异常呢: 访问数组的索引 是数组没有的
​
int[] arr = {10,20,30};
//System.out.println(arr[-1]);  //ArrayIndexOutOfBoundsException
//System.out.println(arr[100]); //ArrayIndexOutOfBoundsException

数组的遍历

//遍历:对容器里面的元素 一个一个的依次展示出来。
​
//int[] arr = {5,7,9,3,1};
​
//遍历方式一: 代码太重复

​
//遍历方式二 :就解决了重复问题。

​
int[] arr = {5,7,9,3,1,4,5654,56,67,45,3,342,342,342,354,76,8,897,9,67,54,4,342,324,234,43,54,65,7,87,98,80};
​

​
//for (int i = 0; i < 数组的长度; i++) {
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

练习题目

案例1: 定义一个数组 求数组里面的最大值 ​ int[] arr = {6,7,4,3,9,5,7,8}; // 打印最大值

案例2: 定义一个数组 求数组里面所有元素的和。

int[] arr = {6,7,4,3,9,5,7,8};  // 打印 和

案例3: 定义一个数组, 打印某个元素在数组中第一次出现的索引。。 ​ int[] arr = {6,7,4,3,9,5,7,8}; ​ // 打印7这个数 在数组中第一次出现的索引 ​ //打印 1 因为 7第一次出现的位置 是1索引

案例4: 键盘录入6个数 存入到数组中。 把数组中的最大值和最小值去除掉之后 求平均值。

// 键盘录入6个数 存入到数组中。 把数组中的最大值和最小值去除掉之后 求平均值。

练习答案

案例1: 定义一个数组 求数组里面的最大值

int[] arr = {6,7,4,3,9,5,7,8};   // 打印最大值
​
int leitai = arr[0];
​
for (int i = 1; i < arr.length; i++) {
    if(arr[i] > leitai){
        leitai = arr[i];
    }
}
​
System.out.println(leitai);

案例2: 定义一个数组 求数组里面所有元素的和。

int[] arr = {6,7,4,3,9,5,7,8};  // 打印 和
int sum =0;
for (int i = 0; i < arr.length; i++) {
    sum+=arr[i];
}
System.out.println(sum);

案例3: 定义一个数组, 打印某个元素在数组中第一次出现的索引

int[] arr = {6,7,4,3,9,5,7,8};
// 打印 9这个数 在数组中第一次出现的索引
// 打印 4
​
Scanner sc = new Scanner(System.in);
int anInt = sc.nextInt();
​
int[] arr = {6,7,4,3,9,5,7,8};
for (int i = 0; i < arr.length; i++) {
    if(arr[i] == anInt){
        System.out.println(i);
        break;
    }
}

案例4: 键盘录入6个数 存入到数组中。 把数组中的最大值和最小值去除掉之后 求平均值。

// 键盘录入6个数 存入到数组中。 把数组中的最大值和最小值去除掉之后 求平均值。
​

​

​
Scanner sc = new Scanner(System.in);
int[] arr = new int[6];
for (int i = 0; i < arr.length; i++) {
    arr[i] = sc.nextInt();
}
​
// 求平均值 :  (和 - 最大值 - 最小值 )/(个数-2)


int sum = arr[0];
int max = arr[0];
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
    sum+=arr[i];
    if (arr[i]>max){
        max = arr[i];
    }
    if (arr[i] < min){
        min = arr[i];
    }
}
​
System.out.println((sum-max-min)/(arr.length-2.0));
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002713.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号