欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 java复习第三天-方法、数组、冒泡排序

程序员文章站 2022-11-23 11:00:21
java SE复习第三天 -方法和数组每天复习半小时,相信日积月累的力量声明:本类型文章用于快速复习,不适合初学者观看,请见谅。很多话用词并不专业,我只希望尽量用易于理解的方式写出来,如有问题请在评论区指出。1.方法格式: 修饰符 返回值类型 方法名(参数列表){ //代码省略... return 结果; } //用于对比查看,帮助理解 public static int suShu(){ return 0; }返回值为void时,代表没有返...

java SE复习第三天 -方法和数组

  • 每天复习半小时,相信日积月累的力量
  • 声明:本类型文章用于快速复习,不适合初学者观看,请见谅。很多话用词并不专业,我只希望尽量用易于理解的方式写出来,如有问题请在评论区指出。

1.方法

格式:

  修饰符 返回值类型 方法名(参数列表){
   //代码省略... 
   return 结果; 
  }
    //用于对比查看,帮助理解
  public static int suShu(){
    return 0;
  }
  • 返回值为void时,代表没有返回值,也就是return,方法需要多练习,很快就能融会贯通
  • 方法用的地方太多了,这里就仅列举一些题目作为练习

1.1 封装方法-计算X-Y之间的偶数和

 public static void main(String[] args) {
      sum(1,100);//方法调用
 }

 public static void sum(int x,int y){
     int s = 0;
     for (int i = x; i < y; i++) {
         if (i%2==0){
             s+=i;
         }
     }
     System.out.println(x + "到" + y +"的偶数和为:"+s);
 }

注意:static可以方便在没有创建对象的情况下来进行调用(方法/变量),初学者建议加上static,做大型项目时static的使用需要慎重,下面额外延伸一下没有static时怎样调用方法(不过这个应该算是面向对象的内容)。

public class demo13 {
    public static void main(String[] args) {
        demo13 demo13 = new demo13();
        demo13.sum(1,100);//方法调用
    }

    public void sum(int x,int y){
        int s = 0;
        for (int i = x; i < y; i++) {
            if (i%2==0){
                s+=i;
            }
        }
        System.out.println(x + "到" + y +"的偶数和为:"+s);
    }
}

通过对比可以发现,不加入static需要new一个对象出来,但是被static修饰的方法在main方法启动的时候就被加载进内存,这也就是为什么大型项目使用static需要慎重的原因。



1.2 封装方法-统计水仙花数

  public static void main(String[] args) {
      int n = suShu();
      System.out.println("素数个数为:"+n);
  }

  public static int suShu(){
      int sum = 0;//统计素数个数
      for (int i=101;i<=200;i++){
          boolean flag = true;//默认为真
          for (int j=2;j<i;j++){
              if (i%j==0){
                  flag = false;//如果为假则说明当前i不为素数
              }
          }
          if (flag){
              sum++;
          }
      }
      return sum;
  }

1.3 封装方法-x的N次方

 public static void main(String[] args) {
    int m = power(3,3);//方法调用
      System.out.println(m);
  }

  public static int power(int x,int n){
      int m = 1;
      for (int i = 0; i < n; i++) {
          m*=x;
      }
      return m;
  }




2.数组

2.1 格式

 数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
 数据类型[] 数组名 = {元素1,元素2,元素3...};
int[] arr = new int[3];
int[] arr = new int[]{1,2,3,4,5};
int[] arr = {1,2,3,4,5};

2.2 数组的遍历

public static void main(String[] args) { 
	int[] arr = { 1, 2, 3, 4, 5 }; 
	for (int i = 0; i < arr.length; i++) { 
		System.out.println(arr[i]); 
	} 
}

2.3 获取数组中的最大值

length():数组的长度
注意:数组的索引从0开始

  public static void main(String[] args) {
      int[] arr = {15,89,13,25,62,68,5};
      int num = arr[0];
      for (int i = 1; i < arr.length; i++) {
          if (arr[i] > num){
              num = arr[i];
          }
      }
      System.out.println("数组中的最大值为:" + num);
  }

2.4 冒泡排序

  public static void main(String[] args) {
      int[] arr = {15,89,13,25,62,68,5};
      for (int i = 0; i < arr.length-1; i++) {
          for (int j=0;j<arr.length-i-1;j++){
              if (arr[j]<arr[j+1]){
                  int tem = arr[j];
                  arr[j] = arr[j+1];
                  arr[j+1] = tem;
              }
          }
      }
      for (int i = 0; i < arr.length; i++) {
          System.out.println(arr[i]);
      }
  }

冒泡排序是一个经典算法,他不是最优算法,但是这个必须要掌握。下面从百度上搜了一张图,便于理解
荐
                                                        java复习第三天-方法、数组、冒泡排序



2.5 数组相关异常

数组越界异常

public static void main(String[] args) { 
	int[] arr = {1,2,3}; 
	System.out.println(arr[3]); 
}

上述代码中,数组的索引有0,1,2并没有3,所以会出现ArrayIndexOutOfBoundsException异常。在开发中,数组的越界异常是不能出现的,一 旦出现了,就必须要修改我们编写的代码。


空指针异常

public static void main(String[] args) { 
	int[] arr = {1,2,3}; 
	arr = null; 
	System.out.println(arr[0]);

解析: arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候 会抛出 NullPointerException 空指针异常。

  • 还有哪些常见的数组相关异常,欢迎大家在评论区留言。

本文地址:https://blog.csdn.net/qq_45740561/article/details/107282868