当前位置: 首页 > news >正文

JAVA——选择结构、循环结构、随机数、嵌套循环、数组(一维、二维)

目录

一、选择结构

IF选择结构

Switch Case选择结构

二、循环结构

for循环

while循环

do...while循环 

三、Random

随机数类

四、break 和 continue区别(面试)

五、嵌套循环-多重循环


一、选择结构

IF选择结构

if....else

Switch Case选择结构

switch...case结构支持的数据类型有哪些?

char, byte, short, int, String

1、整数类型中的byte short int

2、字符型 char

3、String 属于引用类型(jdk8的新特性)

break结束switch...case结构

switch(表达式){
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体3;
        break;
    default:
        语句体n;
        break;
}

二、循环结构

for循环

for(表达式1;表达式2;表达式3){
    循环体;
}

或者

表达式1
for(;表达式2;){
    循环体;
    表达式3
}

或者

表达式1
for(;;){
    if(表达式){
       循环体;
       break;
      表达式3
    }
}

while循环

while(循环条件){
    //满足条件,执行循环体
    //循环结束条件(变量的递增或者递减、break强制结束while循环、continue)
}

do...while循环 

do...while 相比while,至少执行一次,先执行一次,再判断是否满足条件

do{
    //代码
}while(判断条件);

三、Random

随机数类

可以用于产生随机:整数、小数、布尔类型

r.nextInt()
r.nextInt(10) // [0,10)
r.nextFloat();
r.nextDouble();
r.nextBoolean();

求[min,max]范围的值:
r.nextInt(max-min+1)+min;

四、break 和 continue区别(面试)

break 的作用 是结束当前for循环。

continue 结束本次循环,继续下次循环。

五、嵌套循环-多重循环

//外层循环控制行
for(){
    //内层循环控制列
    for(){
        System.out.print("");
    }
    System.out.println();//换行
}

while(){
    while(){
    
    }
}

do{
    do{
    
    }while();
}while():


while(){
    for(){
    
    }

}

六、一维数组 

数组是一种特殊的数据类型,这种数据类型用于存储一组数据类型相同的数据。简单来说,数组就是一个容器,用于存储一组数据,这组数据具有相同的数据类型

数组中的每个数据称为数组的元素

变量:存储单个值

int i = 1;
double d = 1.0;
String name = "张三";

数组:存储多个相同数据类型变量的值

double score1 = 60; 
double score2 = 70;
double score3 = 80;
double[] scores = {60,70,80}

声明数组

数据类型[]  数组名 ;
数据类型  数组名[] ;

数据的初始化

静态初始化

数据类型[]  数组名 = {元素1,元素2,元素3};

动态初始化

数据类型[]  数组名 = new 数据类型[5];
数组名[0] = 元素1;

package com.hl.array;public class ArrayDemo1 {public static void main(String[] args) {//创建一个数组,存储班级同学姓名//静态初始化String[] name = {"小白","小黑","小紫","小红"};//动态初始化 必须指定数组长度String[] name2 = new String[30];int[] age = new int[30];//查看第一个元素(索引下标0)位置的值System.out.println(name2[0]);//默认值  所有的引用数据类型 默认值为nullSystem.out.println(age[0]);//基本数据类型的默认值 整数0 浮点0.0 布尔false//修改指定索引下标位置的元素age[0] = 20;name2[0] = "张三";System.out.println(name2[0]);System.out.println(age[0]);}
}

索引下标越界

package com.hl.array;
​
public class ArrayDemo2 {public static void main(String[] args) {//数组索引下标越界//索引下标 0-9int[] array = new int[10];//java.lang.ArrayIndexOutOfBoundsException: 10
//        System.out.println(array[10]);
//        array[10] = 1;}
}

数组排序

数组排序指的是让一堆杂乱无章的数据,按从小到大排列,或者按从大到小排列,让其有规律。这个过程就是数组排序。排序的算法很多,例如:冒泡排序,选择排序,快速排序,归并排序,插入排序等等。咱们讲一下冒泡排序和选择排序。

冒泡排序(练习)

冒泡排序:海底的气泡由于水压的作用,越深的地方气泡就越小,气泡在上浮的过程中,由于水压的减小,气泡会越来越大,到达海面的时候,气泡会最大。基于这个启发,数学家们发明了冒泡排序。

冒泡排序的思想:以从小到大排序为例。依次比较相邻的2个数据,如果前面的数据大于后面的数据,二者交换位置,一趟下来之后,最大的数据就跑到了末尾,这个数据在下一趟不再参与比较。第二趟仍然是依次比较相邻的2个数据,如果前面的数据大于后面的数据,二者交换位置,第二趟下来之后,第2大的数据就跑到了倒数第二位,同样这个数据不再参与下一趟的比较,以此类推,对于具有n个数的数组而言,进行n-1趟上述过程,就能让数组有序。

package com.hl.sort;
​
import java.util.Arrays;
import java.util.Comparator;
​
public class SortDemo1 {public static void main(String[] args) {int[] array = {1,55,22,13,4,16,17,90,9};//数组排序 升序排序
//        Arrays.sort(array);
//        for (int i = 0; i < array.length; i++) {
//            System.out.print(array[i]+" ");
//        }System.out.println(array);//冒泡排序 两两相邻比较,小的放前面(交换位置)for (int i = 0; i < array.length-1; i++) {for (int j = 0; j < array.length-1 - i; j++) {if(array[j] > array[j+1]){//交换位置int temp = array[j];array[j] = array[j+1];array[j+1] = temp;}}System.out.println(Arrays.toString(array));}}
}

七、二维数组

二维数组本质上就是一个一维数组,每一个元素又是一个一维数组。

int[] array = {1,2,3,4};
int[][] array = {
    {1,2,3,4},
    {5,6,7,8}
};

二维数组的定义和初始化

静态初始化:
int[][] array = {
    {1,2,3,4},
    {5,6,7,8}
};

动态初始化:
int[][] array = new int[2][4];
//2行 4列
0  0  0  0
0  0  0  0
array[0][0]  ... [0][3]
array[1][0]  ... [1][3]

二维数组的遍历

package com.hl.array2;
​
public class Demo1 {public static void main(String[] args) {int[][] array = {{1,2,3},{4,5,6},{7,8,9,10}};//遍历查询//求二维数组长度System.out.println(array.length);for(int i=0;i<array.length;i++){//一维数组int[] array2 = array[i]; // {1,2,3}//遍历每一个一维数组for (int j = 0; j < array2.length; j++) {System.out.print(array2[j]+"  ");}System.out.println();//换行符}}
}
​

http://www.dtcms.com/a/274957.html

相关文章:

  • 亚古数据:澳大利亚公司的ABN和ACN号码是什么?
  • PyInstaller打包完整指南1
  • Java语言基础
  • 从硬件层面上限制电脑用户只能上网访问特定的网址
  • 知识就是力量——STM32(低功耗芯片方向)
  • ROS系统如何接管工业机械臂?
  • U2Fusion: A Unified UnsupervisedImage Fusion Network
  • 2025 js——面试题(7)——ajax相关
  • Linux自动化构建工具(一)
  • AI技术与大模型对比分析:发展趋势、应用场景及挑战
  • UI前端与数字孪生融合新领域:智慧环保的垃圾分类与回收系统
  • LLM场景下的强化学习【GRPO】
  • PCIE set_property问题
  • Java synchronized 锁机制深度解析与实战指南 - 银行转账案例
  • 深度学习超参数调优指南
  • Scrapy入门实战指南:从零开始打造高效爬虫系统
  • 每日算法刷题Day45 7.11:leetcode前缀和3道题,用时1h40min
  • 机器学习之线性回归(七)
  • 安全领域的 AI 采用:主要用例和需避免的错误
  • 基于k8s环境下pulsar高可用测试和扩缩容(上)
  • 基于k8s环境下pulsar高可用测试和扩缩容(下)
  • 线程通信与进程通信的区别笔记
  • CMU15445-2024fall-project1踩坑经历
  • 小米汽车今年6月新车交付超2.5万辆
  • Marin说PCB之Allegro高亮BOM器件技巧详解
  • 格密码--数学基础--03格的基本域与行列式
  • 用AI做带货视频评论分析【Datawhale AI 夏令营】
  • 《P3976 [TJOI2015] 旅游》
  • Guava LoadingCache
  • Apipost 与 Apifox 的 API 调试功能:全面对比与深入分析