javaday04续

目录

Day04---循环+数组... 1

1       break和continue. 1

1.1        形式... 1

1.2        练习1:找数字88. 1

2       循环结构2:while. 1

2.1        格式... 1

2.2        练习1:猜数字... 1

3       循环结构3:do-while. 1

3.1        格式... 1

3.2        练习1:改造猜数字... 1

4       !!!数组... 1

4.1        概念... 1

4.2        创建数组... 1

4.3        练习1:数组中存入hello. 1

4.4        数组的长度... 1

4.5        数组的遍历/循环... 1

4.5.1         形式... 1

4.5.2         练习1:输出每个月的天数... 1

4.5.3         练习2:遍历数组,存入1到10. 1

4.5.4         练习3:创建随机数组... 1

5       [了解]二维数组... 1

5.1        概念... 1

5.2        创建二维数组... 1

5.3        遍历二位数组... 1

6       拓展... 1

6.1        三种循环的区别... 1

6.2        冒泡排序... 1

Day04---循环+数组

1   break和continue

1.1  形式

break: 中断当前循环,简单粗暴

continue:跳出本次循环,进入下一轮

1.2  练习1:找数字88

创建day04工程

创建cn.tedu.breakconti包

创建Test1_Break.java

接收用户输入的100次数字

如果不是88继续输入

找到88就结束

package cn.tedu.breakconti;

 

import java.util.Scanner;

 

//找数字88

public class Test1_Break {

 

       public static void main(String[] args) {

              //执行100次,保证能接收100次输入

              for(int i = 0 ; i < 100 ; i++) {

                     //1、接收用户输入的数字

                     int input = new Scanner(System.in).nextInt();

                    

                     //2、判断是不是88

                     if(input != 88) {//不是88

                            continue;//continue可以让程序结束本次循环,继续下一次的输入

                     }else if(input == 88) {//是88

                            System.out.println("中了!!");

                            break;//break可以让程序立刻结束

//                         System.out.println("中了!!");不可到达的代码

                     }

                    

              }

             

       }

 

}

2   循环结构2:while

先判断,再执行

2.1  格式

while(执行条件){

       代码…

}

2.2    练习1:猜数字

产生一个随机数

和用户一直在输入,

的数字比较。

package cn.tedu.whiledemo;

 

import java.util.Random;

import java.util.Scanner;

 

//测试while循环

public class Test2_While {

 

       public static void main(String[] args) {

              //1、让程序产生随机数,

              //nextInt(n) -- 产生n以内的随机数,从0开始

              int random = new Random().nextInt(100)+1;

              System.out.println(random);

             

              //2、调用method()完成猜数字游戏

              method(random);//random 是实参

       }

      

       //创建method(random)  r是形参

       public static void method(int r) {

              //3、一直接受用户输入的数字

//           for(int i = 1; i >= 1 ;i++) {//for的死循环

//           while(r> 50) {//如果满足r > 50的条件,才执行循环体

              while(true) {//while(true)  -- 死循环,必须设置程序的出口

                     int input = new Scanner(System.in).nextInt();

                    

                     //4、判断输入的值和随机数的关系

                     if(input> r) {

                            System.out.println("大了");

                     }else if(input < r) {

                            System.out.println("小了");

                     }else if(input == r) {

                            System.out.println("中了");

                            break;//设置出口!!!!!

                     }

                    

              }

             

             

       }

      

 

}

3   循环结构3:do-while

先执行,再判断

3.1  格式

do{

       代码…

} while(执行条件);

 

3.2  练习1:改造猜数字

产生一个随机数,和用户一直在输入的数字比较。

package cn.tedu.whiledemo;

 

import java.util.Random;

import java.util.Scanner;

 

//测试while循环

public class Test2_While {

 

    public static void main(String[] args) {

       //1、让程序产生随机数,

       //nextInt(n) -- 产生n以内的随机数,从0开始

       int random = new Random().nextInt(100)+1;

       System.out.println(random);

      

       //2、调用method()完成猜数字游戏---以while循环

//     method(random);//random 是实参

      

       //改造猜数字游戏---以do...while循环

       method2(random);

    }

    //创建method2(random)---以do...while循环

    //do...while循环 保证代码最少执行1次。 -- 先执行,再判断

    public static void method2(int r) {

       do {//while(true)  -- 死循环,必须设置程序的出口

           int input = new Scanner(System.in).nextInt();

          

           //4、判断输入的值和随机数的关系

           if(input> r) {

              System.out.println("大了");

           }else if(input < r) {

              System.out.println("小了");

           }else if(input == r) {

              System.out.println("中了");

              break;//设置出口!!!!!

           }

          

       }while(true);

      

    }

   

    //创建method(random)  r是形参---以while循环

    //while必须满足条件才执行  -- 先判断,在执行

    public static void method(int r) {

       //3、一直接受用户输入的数字

//     for(int i = 1; i >= 1 ;i++) {//for的死循环

//     while(r> 50) {//如果满足r > 50的条件,才执行循环体

       while(true) {//while(true)  -- 死循环,必须设置程序的出口

           int input = new Scanner(System.in).nextInt();

          

           //4、判断输入的值和随机数的关系

           if(input> r) {

              System.out.println("大了");

           }else if(input < r) {

              System.out.println("小了");

           }else if(input == r) {

              System.out.println("中了");

              break;//设置出口!!!!!

           }

          

       }

      

      

    }

 

}

4   !!!数组

4.1  概念

数组Array,标志[ ]。

是用于储存多个相同类型数据的集合。

想要获取数组中的元素值,可以通过脚标(下标)来获取,下标是从0开始的。

4.2  创建数组

一般分为动态初始化和静态初始化

1、动态初始化   --  不知道数组里具体要存啥数据

int[] a = new int[5];

 

2、静态初始化  -- 创建时就已经知道了数组里要放啥

int[] b = new int[]{1,2,3,4,5,6,7,8,9,10};

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

4.3  练习1:数组中存入hello

package cn.tedu.array;

 

//测试数组的使用

public class Test3_Array {

   

    public static void main(String[] args) {

       //1、创建数组  

       //-- 静态创建

       char[] a = new char[] {'h','e','l','l','o'};

       char[] b = {'h','e','l','l','o'};

      

       System.out.println(a);

       System.out.println(b);

      

       //-- 动态创建

       char c[] = new char[5]; 

       c[0] = 'h';//给第1个元素(下标为0的)赋值

       c[1] = 'e';//给第2个元素(下标为1的)赋值

       c[2] = 'l';//给第3个元素(下标为2的)赋值

       c[3] = 'l';//给第4个元素(下标为3的)赋值

       c[4] = 'o';//给第5个元素(下标为4的)赋值

      

//java.lang.ArrayIndexOutOfBoundsException:因为访问了数组中不存在的下标

//     c[5] = 'x';//给第6个元素(下标为5的)赋值

      

       System.out.println(c);

      

    }

   

   

}

4.4  数组的长度

  • length属性
  • 数组一旦创建,长度不可变
  • 允许0长度的数组

4.5  数组的遍历/循环

从头到尾,依次访问数组的位置。

4.5.1   形式

for(从下标为0的位置开始;下标<= 数组的长度-1;下标++){

    循环体

}

4.5.2   练习1:输出每个月的天数

package cn.tedu.array;

 

//测试数组的练习

public class Test4_Array {

 

    public static void main(String[] args) {

       //输出每个月的天数

       //1、静态创建数组,存放12个数字

       int[] a = {31,28,31,30,31,30,31,31,30,31,30,31};

      

       //TODO 2、遍历数组中的每个元素

       //i表示下标,int i = 0       指从下标为0的位置开始

       //i <= a.length-1    指下标<= 数组的长度-1

       //i++      指下标依次递增,向后遍历数据

       for(int i = 0 ;i <= a.length-1 ; i++){

          

//         System.out.println("3月有30天");

//a[i] 根据下标获取元素

           System.out.println(i+1+"月有"+a[i]+"天"); 

       }

      

    }

 

}

4.5.3   练习2:遍历数组,存入1到10

//向数组中存入1-10

       public static void method2() {

              //1、动态创建数组

              int[] a = new int[10];

             

              //TODO 2、遍历数组中的每个元素

              //i表示下标,int i = 0             指从下标为0的位置开始

              //i< = a.length-1              指下标<= 数组的长度-1

              //i++            指下标依次递增,向后遍历数据

              for(int i = 0 ; i <= a.length-1 ; i++ ) {

                     a[i] = i+1;//a[i]根据下标修改元素的值,把原来的默认值覆盖掉

                     System.out.println(a[i]);

              }

 

              System.out.println(a);//[I@659e0bfd --  地址值

              //想看不是char[]的数组里的元素是啥

              //Arrays.toString()  --  把指定的数组里的元素变成字符串显示

              //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

              System.out.println(Arrays.toString(a));

             

       }

4.5.4   练习3:创建随机数组

获取100以内的随机值的数组

// 创建随机数组

    public static void method3() {

       // 1、动态创建数组,长度是10

       int[] a = new int[10];

 

       // 2、根据下标遍历数组

       // i表示下标,int i = 0 指从下标为0的位置开始

       // i <= a.length-1 指下标<= 数组的长度-1

       // i++ 指下标依次递增,向后遍历数据

       for (int i = 0; i <= a.length - 1; i++) {

           //根据下标给每个下标对应的元素赋随机数

           a[i] = new Random().nextInt(100);

       }

      

       //3、打印a数组中的元素

       //[79, 74, 75, 48, 37, 55, 55, 94, 33, 96]

       System.out.println(Arrays.toString(a));

    }

5   [了解]二维数组

5.1  概念

标志是[ ][ ]。

存放数组的数组,也就是说数组里存的还是数组的数据形式。

5.2  创建二维数组

1、静态初始化

int[][] a= {{1,2},{3,4},{5,6},{8,9}};

--创建外部数组长度是4

--创建内部数组长度分别是2

--初始化数组,存入默认值

--修改数组中的默认值

--分配唯一的内存地址值,并交给引用型变量a保存

 

5.3  遍历二位数组

for(int i=0;i<a.length;i++){//遍历外部数组

    for(int j=0;j<a[i].length;j++){//遍历内部数组

       syso(a[i][j]);//根据外围数组下标和内部数组下标结合定位元素

a[i][j]=?;

}  

}

6   拓展

6.1  三种循环的区别

三种循环都可以互相代替。

1、for  -- 必须知道开始位置 + 知道循环的次数

for(开始位置;循环的判断条件;更改条件){

    循环体;

}

 

2、while  -- 先判断,再执行 -- 只需要知道条件

while(循环的判断条件){

    循环体;

}

 

3、do...while -- 先执行,再判断 -- 只需要知道条件 -- 保证代码最少执行1次

do{

    循环体;

}while(循环的判断条件);

6.2  冒泡排序

package day005;

 

import java.util.Arrays;

import java.util.Random;

 

public class Test1_冒泡 {

       public static void main(String[] args) {

              int[] arr = suiji();//获得随机数组

              System.out.println(Arrays.toString(arr));

             

              sort(arr);//冒泡

              System.out.println(Arrays.toString(arr));

             

       }

 

       //获得随机数组

       private static int[] suiji() {

              int n = 5+new Random().nextInt(6);

              int[] arr = new int[n];

              for (int i = 0; i< arr.length; i++) {

                     arr[i]=new Random().nextInt(100);

              }

              return arr;

       }

      

       //冒泡,从小到大排序

       private static void sort(int[] a) {

              for(int i=0;i<a.length;i++){

                     for(int j=a.length-1;j>i;j--){

                            if(a[j]<a[j-1]){

                                   int t=a[j];

                                   a[j]=a[j-1];

                                   a[j-1]=t;

                            }

                     }

              }

             

       }

}

猜你喜欢

转载自www.cnblogs.com/ou-yang/p/12957701.html
今日推荐