Java基础知识总结(44)

(1)分支结构------Switch···case 语法: switch(expression){ case 1: //代码 break; case 2: //代码 break; ... default: }

复制代码
        Java7之前 expression的类型只支持byte、short、int、char
        Java7之后添加了String和枚举
        
        switch分支语句的执行是先对expression求值,然后依次匹配case后的值,遇到匹配的值即执行对应的执行体
        如果所有的case标签后的值都不与expression表达式的值相等,则执行default标签后的代码块。
        注意考点:case后语句满足条件时继续执行、直到遇到break语句时再输出
        int i=3;
        switch(i) {
            case 1:
                System.out.println(1);
            case 2:
                System.out.println(2);
            case 3:
                System.out.println(3);
            case 4:
                System.out.println(4);
                break;
            default:
                System.out.println("没有匹配的值");
        }
(2)循环结构
​
        循环结构是指在满足某个循环条件的情况下,反复执行同一段代码,直到不满足循环条件为止。
        初始化语句:一个或多个语句,这些语句用来完成一些初始化工作,在循环开始之前执行
        循环条件:循环条件是一个布尔表达式,该表达式决定是否执行循环体
        循环体:这部分是循环的主题,如果循环条件允许,该代码块将被反复执行,如果这个代码块只有一条语句,则代码块的花括号可以省略。
        迭代语句:这部分在一次循环体执行结束后执行,在循环条件求值前执行,通常用于控制循环条件中的变量,使得循环在合适的时候结束。
                    
        for :
        for(循环变量;循环条件;修改循环变量){
            //循环体
        }
​
        for(::)是合法的
​
        while:
        while(循环条件){
            //循环体
        }
​
        do...while:
​
        do{
            //循环体
        }while(循环条件);
        
        注意:while和do while的区别:while语句中先执行判断语句,为真执行循环体;do while 中先执行一遍循环体再执行判断,判断为真执行循环体,为假时跳出循环。 
        
(3)使用break结束循环
        使用break完全结束一个循环,跳出循环体,不管是哪种循环,一旦循环体中遇到break,系统将完全结束该循环,开始执行循环结构以后的代码。
•
        package cn.bytecollege;
​
            public class ForDemo {
​
                public static void main(String[] args) {
                // TODO Auto-generated method stub
​
                int i;
                for(i = 0;i<=5;i++) {
                    if(i==3) {
                        System.out.print("");
                        break;
                    }
                    System.out.println(i);//0 1 2
                }   
            }
        }
        当变量i的值变为3的时候,满足if条件判断,此时进入if分支结构,进入以后遇到break,此时跳出循环。
               break可以视为中断循环,即使循环还没有结束,也再不循环,直接结束,当然break也可以跳出多层循环。
(4)使用continue跳过此次循环
        continue的功能和break有点类似,区别是continue只是跳出此次循环,继续执行剩下的循环,并不是完全终止循环。
        package cn.bytecollege;
​
        public class ForDemo {
​
            public static void main(String[] args) {
            // TODO Auto-generated method stub
​
                int i;
                for(i = 0;i<=5;i++) {
                    if(i==3) {
                        System.out.print("");
                        continue;
                    }
                    System.out.println(i);//0 1 2 4 5
                }
            }
        }
(5)循环嵌套
     当程序遇到循环嵌套是,如果外层循环的循环条件允许,则开始执行外层循环的循环体,而内层循环将被外层循环的循环体来执行,只是内层循环需要反复执行自己的循环体而已。
     当内层循环执行结束,且完成循环的循环体执行结束时,在再次计算外层循环的循环条件,决定是否再次执行外层循环的循环体。
     如:
        package cn.bytecollege;
​
        import java.util.Scanner;
​
        public class TriangleDemo {
            public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入行数:");
            int number = scanner.nextInt();
            scanner.close();    
            System.out.println();
            for(int i = 1;i<=number;i++) {
                for(int k = 0;k<number-i;k++) {
                    System.out.print(" ");
                }   
                for(int j = 1;j<=2*i-1;j++) {                   
                    System.out.print("*");
                }
                System.out.println();
            }
            System.out.println();
        }
        }
        
(6)数组
        概念:具有相同数据类型按照一定次序排练的一组数据的集合。
​
        1. 存放在一个数组的元素必须数据类型相同,不能把不同类型的元素放进同一个数组。
        2. 按照一定次序排列,数组中的元素是有序的,这句话包含两层含义,第一:元素是有顺序的。也可以理解为每个数组元素都有一个编号,这个编号是连续的(我们通常把这个编号叫做数组的下标或者索引);第二:元素存放的顺序和取出的顺序是一致的,也就是说存放元素的顺序是10,20,30,40。那么取出的顺序也是10,20,30,40。
        3. 一组数据,一组数据是指元素的个数可以是0个,也可以是1个,也可以是多个,Java中允许数组中有0个元素,也就是我们所说的空数组。
(7)数组的声明
        数据类型[] 数组名;
        数据类型 数组名[];//通常不使用,容易造成混淆
            
(8)数组的初始化   
        int[] ary = new int[] {1,2,3};//静态初始化
        int[] ary2 = {2,2,3};//静态初始化    
        int[] ary3 = new int[3];//动态初始化
        int[3] ary4 = new int[] {1,2,3};//错误示例1:
        int[] ary5 = new int[3] {1,2,3};//错误示例2:
​
        初始化完成后数组在内存中所占的空间将固定下来,数组的大小将不会被改变
        数组完成初始化后会在栈内存中开辟空间,其中存储的是堆内存中数组的首地址。
(9)数组的默认值
      当数组动态初始化后,JVM会给数组的元素赋默认值,规则如下:
        1. 整型的数组,默认值为0;
        2. 浮点型的数组,默认值为0.0;
        3. char类型的数组,默认值为'\u0000';
        4. boolean类型的数组,默认值为false
        5. 引用类型的数组,默认值为null//null指没有引用指向堆里面的任何区域
(10)冒泡排序算法
package cn.bytecollege;
​
import java.util.Arrays;
​
public class BubbleSort {
​
    public static void main(String[] args) {
        // TODO Auto-generated method stub
​
        int [] sortArray = {3,8,5,7,2,1};
        for(int i = 0;i<sortArray.length-1;i++) {
            for(int j = 0;j<sortArray.length-1-i;j++) {
                if(sortArray[j]>sortArray[j+1]) {
                    int temp = sortArray[j];
                    sortArray[j] = sortArray[j+1];
                    sortArray[j+1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(sortArray));//[1, 2, 3, 5, 7, 8]
    }
}

今天

相关推荐
好奇龙猫7 分钟前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法
P.H. Infinity34 分钟前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天37 分钟前
java的threadlocal为何内存泄漏
java
sp_fyf_202442 分钟前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
caridle1 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^1 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋31 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
秋の花1 小时前
【JAVA基础】Java集合基础
java·开发语言·windows
香菜大丸1 小时前
链表的归并排序
数据结构·算法·链表
jrrz08281 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表