学习黑马java day05

目录

无限循环

跳转控制语句

生成随机数字

数组

定义:

初始化:

        静态初始化

        动态初始化

地址值:

数组元素访问:

数组的遍历:

练习


无限循环

循环一直停不下来;//故无限循环的下面不能再写其他的代码。

跳转控制语句

练习1

题目1:小老虎吃5个包子,第三个包子有虫子,跳过。

public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            if(i==3){
                //结束本次循环,执行下次循环
                continue;
            }
            System.out.println("小老虎在吃第"+i+"个包子");
        }
    }

题目2:小老虎吃5个包子,第三个包子吃饱了,后面的都不会再吃了。

public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println("小老虎在吃第"+i+"个包子");
            if(i==3){
                //结束整个循环
                break;
            }
        }
    }

总结:continue:跳出本次循环,继续执行下次循环

           break:跳出整个循环

练习2:

题目1:使用程序在控制台打印出1-100之间的满足逢7必过规则的数据。

public class test01 {

    public static void main(String[] args) {
        //使用程序在控制台打印出1-100之间的满足逢7必过规则的数据。
        for (int i = 1; i <= 100; i++) {
            if(i%10==7 || i/10%10==7 || i%7==0){
                continue;
            }
            System.out.println(i);
        }
    }
}

题目2:求平方根

             键盘录入一个大于等于2的整数x,计算并且返回x的平方根。结果只保留整数部分,小数部分将舍去。

public static void main(String[] args) {
        //键盘录入一个大于等于2的整数x,计算并且返回x的平方根。结果只保留整数部分,小数部分将舍去。
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个大于等于2的整数:");
        int number = sc.nextInt();
        int temp;
        for (int i = 1; i < number; i++) {
            temp = i*i;
            if(temp == number){
                System.out.println("该整数的平方根为:"+ i);
                break;
            }
            if(temp>number){
                int i1=i-1;
                System.out.println("该整数的平方根的整数部分为:"+ i1);
                break;
            }
        }
    }

题目3:求质数,键盘录入,若是质数则返回true,反之,返回false

public class test01 {
    public static void main(String[] args) {
    //求质数,键盘录入,若是质数则返回true,反之,返回false
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int number = sc.nextInt();
        //定义一个标志,最开始就认定number是一个质数
        boolean flag = true;
        for (int i = 2; i < number; i++) {
            if(number%i==0){
                flag = false;
                break;
            }
            }
        if(flag){
            System.out.println("是一个质数");
        }
        else{
            System.out.println("不是一个质数");
        }
    }
}

生成随机数字

题目4:程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?

获取随机数字:Random类

①导包

import java.util.Random;

②创建对象

Random r = new Random();

③生成随机数

int number = r.nextInt(随机数范围);

public static void main(String[] args) {
        //程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?
        Random r = new Random();
        //在小括号中表示的是生成随机数的范围,从0开始到这个数-1结束[ )
       // r.nextInt(100);//0~99
        int number = r.nextInt(100)+1;
        Scanner sc = new Scanner(System.in);
        while(true){
            System.out.println("请输入你猜测的数字");
            int gessNumber = sc.nextInt();
            if(gessNumber > number){
                System.out.println("大了");
            }else if(gessNumber < number){
                System.out.println("小了");
            }else{
                System.out.println("猜中了!");
                break;
            }
        }
    }

数组

存储同种数据类型的多个值,需要结合隐式转换

定义:

        ①数据类型[] 数组名 int [] array

        ②数据类型 数组名[]  int array[]

初始化:

        静态初始化

                格式:数据类型[] 数组名 = new 数据类型[] {元素1,元素2,元素3……};

                例:int[] array = new int[]{11,22,33};

                简化格式:数据类型[] 数组名 = {元素1,元素2,元素3……};

                例:int[] array = {11,22,33};

        动态初始化

                初始化时只指定数组长度,由系统为数组分配初始值

                格式:数据类型[] 数组名 = new 数据类型[数组长度];

                例:int[] arr = new int[3];//定义一个长度为3的数组;

地址值:

        数组的地址值表示数组在内存中的位置

        

        ①[ :表示当前的是一个数组

        ②I :表示当前数组的元素是int类型;D:(double类型)

        ③@:表示一个间隔符号

        ④4eec7777:数组真正的地址值,(十六进制)

数组元素访问:

        格式:数组名[索引];

        索引:也叫做下标,角标。特点是从0开始,逐个+1,连续不断

数组的遍历:

将数组中所有的内容取出来,取出来之后可以(打印、求和、判断……)

ps:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印。

  • 练习

题目1:遍历数组并求和,数组里面存储1,2,3,4,5.

public class test01 {
    public static void main(String[] args) {
        //遍历数组并求和,数组里面存储1,2,3,4,5.
        int[] arr = {1,2,3,4,5};
        int sum=0;
        for (int i = 0; i < arr.length; i++) {
            sum=sum+arr[i];
        }
        System.out.println("和为:"+sum);
    }
}

题目2:统计个数,定义数组存储1-10;遍历数组统计一共有多少个能被3整除的数字;

public class test01 {
    public static void main(String[] args) {
        //统计个数,定义数组存储1-10;遍历数组统计一共有多少个能被3整除的数字
        int[] arr = {1,2,3,4,5,6,7,8,9,10};
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] % 3 == 0){
                count++;
            }
        }
        System.out.println("有"+count+"个能被3整除的数字");
    }
}

题目3:变化数据,定义数组存储1-10,遍历数组:①如果是奇数,则将当前数字扩大两倍;②如果是偶数,则将当前数字变成二分之一;

public class test01 {
    public static void main(String[] args) {
        //定义数组存储1-10,遍历数组:①如果是奇数,则将当前数字扩大两倍;②如果是偶数,则将当前数字变成二分之一;
        int[] arr = {1,2,3,4,5,6,7,8,9,10};
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] % 2 == 0){
                arr[i] = arr[i] / 2;
            }
            else{
                arr[i] = arr[i] * 2;
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

题目4:求最大值,数组元素{33,5,22,44,55}

public static void main(String[] args) {
        //求最大值,数组元素{33,5,22,44,55}
        int[] arr = {33,5,22,44,55};
        int max = arr[0];//max初始化的值要是数组中的值;
        for (int i = 1; i < arr.length; i++) {
            if(arr[i] > max){
                max = arr[i];
            }
        }
        System.out.println("最大值为:"+max);
    }

题目5:生成10个1-100之间的随机数存入数组。①求出所有数据的和;②求所有数据的平均数;③统计有多少个数据比平均值小。

public static void main(String[] args) {
        //生成10个1-100之间的随机数存入数组。①求出所有数据的和;②求所有数据的平均数;③统计有多少个数据比平均值小。
        Random r = new Random();
        int[] arr = new int[10];
        int sum = 0;
        int count = 0;
        double average;
        for (int i = 0; i < 10; i++) {
            int number = r.nextInt(100)+1;
            arr[i] = number;
        }
        for (int i = 0; i < 10; i++) {
            sum = sum + arr[i];
        }
        average = sum/10;
        System.out.println("所有数据的和为:"+ sum);
        System.out.println("平均数为:"+ average);
        for (int i = 0; i < 10; i++) {
            if(arr[i]<average){
                count++;
            }
        }
        System.out.println("比平均数小的有:"+ count+"个");

    }

题目6:交换数组中的数据。数组{1,2,3,4,5},交换后:5,2,3,4,1

重点:定义一个临时变量

 public static void main(String[] args) {
        //交换数组中的数据。数组{1,2,3,4,5},交换后:5,2,3,4,1
        int[] arr = {1,2,3,4,5};
        int temp = arr[0];
        arr[0] = arr[4];
        arr[4] = temp;
}

交换后是5,4,3,2,1

重点:设计两个指针,一头一尾

public static void main(String[] args) {
        //交换数组中的数据。数组{1,2,3,4,5},交换后:5,4,3,2,1
        int[] arr = {1,2,3,4,5};
        for(int i=0,j=arr.length-1;i<j;i++,j--){
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"  ");
        }
    }

题目7:打乱数组中的数据,定义一个数组,存入1-5.打乱所有数据的顺序

重点:设置一个随机索引

public static void main(String[] args) {
        //打乱数组中的数据,定义一个数组,存入1-5.打乱所有数据的顺序
        int[] arr = {1,2,3,4,5};
        Random r = new Random();
        for(int i=0;i<arr.length;i++){
            int j = r.nextInt(5);
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+"  ");
        }
    }
  • 38
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值