[置顶] 黑马程序员_java基础(二)

时间:2023-02-18 18:04:26

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------

循环结构:

 

 

while语句格式:

 

 

while(条件表达式)

{

 

         执行语句;

 

}

 

 

do while语句格式:

 

do

{

 

         执行语句;

 

 

}while(条件表达式);

 

 

do while特点是条件无论是否满足,

 

 

循环体至少被执行一次。

 

 

格式:

 

 

for(初始化表达式;循环条件表达式;循环后的操作表达式)

 

{

         执行语句;

}

 

 

            1、for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然

 

 

后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。

 

 

            2、while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while

 

 

循环使用的变量在循环结束后还可以继续使用。

 

 

            3、最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某

 

 

些条件,来控制循环。

 

 

 

break(跳出),  continue(继续):

 

 

 

break语句:应用范围:选择结构和循环结构。

 

 

 

continue语句:应用于循环结构。

 

 

 

for和while的区别:

 

 

1、变量有自己的作用域,对于for来说:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语

 

 

句内有效。For语句执行完毕,该变量在内存中被释放。

 

 

2、For和while可以进行互换,如果需要定义循环增量。用for更为合适。

 

 

Java代码  [置顶]        黑马程序员_java基础(二)
  1. for(int x = 0; x<3 ; x++)  
  2.     {  
  3.         System.out.println("x="+x);  
  4.   
  5.     }  
  6.       
  7.     int y=0;  
  8.     while(y<3)  
  9.     {  
  10.         System.out.println("y="+y);  
  11.         y++;  
  12.     }  
  13.     System.out.println("y===="+y);  

 

 

For练习:

 

*
**
***
****
*****

 

Java代码  [置顶]        黑马程序员_java基础(二)
  1. for (int x=0; x<5 ;x++ )  
  2.     {  
  3.         for (int y=0 ; y<=x ; y++ )  
  4.         {  
  5.             System.out.print("*");  
  6.         }  
  7.         System.out.println();  
  8.     }  

 

1
12
123
1234
12345

 

Java代码  [置顶]        黑马程序员_java基础(二)
  1. for (int x=1; x<=5; x++)  
  2.     {   
  3.         for (int y=1; y<=x;y++ )  
  4.         {  
  5.             System.out.print(y);  
  6.         }  
  7.         System.out.println();  
  8.     }  

 

 

 九九乘法表

 

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9

 

 

Java代码  [置顶]        黑马程序员_java基础(二)
  1. for (int x=1; x<=9 ; x++)  
  2.     {  
  3.         for (int y=1; y<=x; y++)  
  4.         {  
  5.             System.out.print(y+"*"+x+"="+y*x+"\t");  
  6.         }  
  7.         System.out.println();  
  8.     }  

 

 

函数:

 

什么是函数:

 

 

函数就是定义在类中的具有特定功能的一段独立小程序。

 

 

函数也称为方法。

 

 

函数的格式:

 

 

修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,)

         {

                            执行语句;

 

                            return 返回值;

         }

 

 

         返回值类型:函数运行后的结果的数据类型。

 

 

         参数类型:是形式参数的数据类型。

 

 

         形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。

 

 

         实际参数:传递给形式参数的具体数值。

 

 

         return:用于结束函数。

 

 

         返回值:该值会返回给调用者。

 

 

重载:

 

 

在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。

 

 

特点:

 

 

         与返回值类型无关,只看参数列表。

 

 

数组:

 

 

1、同一种类型数据的集合。其实数组就是一个容器。

 

 

2、可以自动给数组中的元素从0开始编号,方便操作这些元素。

 

 

3、元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

 

 

 

栈内存:

 

 

         用于存储局部变量,当数据使用完,所占空间会自动释放。

 

 

堆内存:

 

 

1、数组和对象,通过new建立的实例都存放在堆内存中。

 

 

2、每一个实体都有内存地址值

 

 

3、实体中的变量都有默认初始化值

 

 

4、实体不在被使用,会在不确定的时间内被垃圾回收器回收

 

 

 

Java代码  [置顶]        黑马程序员_java基础(二)
  1. public static void printArray(int[] arr)  
  2.     {  
  3.         System.out.print("[");  
  4.         for(int x=0; x<arr.length; x++)  
  5.         {  
  6.             if(x!=arr.length-1)  
  7.                 System.out.print(arr[x]+", ");  
  8.             else  
  9.                 System.out.println(arr[x]+"]");  
  10.   
  11.         }         
  12.     }  

 

 

获取数组的最大值:

 

 

Java代码  [置顶]        黑马程序员_java基础(二)
  1. public static int getMax_2(int[] arr)  
  2.     {  
  3.         int max = 0;  
  4.   
  5.         for(int x=1; x<arr.length; x++)//遍历比较数组元素的大小  
  6.         {  
  7.             if(arr[x]>arr[max])//经较大元素的角标赋值给max  
  8.                 max = x;  
  9.         }  
  10.         return arr[max];  
  11.     }  

 

 

获取最小值:

 

Java代码  [置顶]        黑马程序员_java基础(二)
  1. public static int getMin(int[] arr)  
  2.     {  
  3.         int min = 0;  
  4.         for(int x=1; x<arr.length; x++)  
  5.         {  
  6.             if(arr[x]<arr[min])  
  7.                 min = x;  
  8.         }  
  9.         return arr[min];  
  10.     }  

 

 

 

排序方法:

 

 

 

选择排序:

 

 

  Java代码  [置顶]        黑马程序员_java基础(二)
  1. /* 
  2.     选择排序。 
  3.     内循环结束一次,最值出现头角标位置上。 
  4.     */  
  5.     public static void selectSort(int[] arr)  
  6.     {  
  7.         for (int x=0; x<arr.length-1 ; x++)  
  8.         {  
  9.             for(int y=x+1; y<arr.length; y++)  
  10.             {  
  11.                 if(arr[x]>arr[y])  
  12.                 {  
  13.                     int temp = arr[x];  
  14.                     arr[x] = arr[y];  
  15.                     arr[y]= temp;  
  16.                 }  
  17.             }  
  18.         }  
  19.     }  
  20.     /* 
  21.     冒泡排序 
  22.     */  
  23.   
  24.     public static void bubbleSort(int[] arr)  
  25.     {  
  26.         for(int x=0; x<arr.length-1; x++)  
  27.         {                                     
  28.             for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。  
  29.             {  
  30.                 if(arr[y]<arr[y+1])  
  31.                 {  
  32.                     int temp = arr[y];  
  33.                     arr[y] = arr[y+1];  
  34.                     arr[y+1] = temp;  
  35.                 }  
  36.             }  
  37.         }  
  38.     }  

 

 

 

折半查找:

 

 

Java代码  [置顶]        黑马程序员_java基础(二)
  1. /* 
  2. 折半查找。提高效率,但是必须要保证该数组是有序的数组。 
  3. */  
  4. public static int halfSearch(int[] arr,int key)  
  5. {  
  6.     int min,max,mid;  
  7.     min = 0;  
  8.     max = arr.length-1;  
  9.     mid = (max+min)/2;  
  10.   
  11.     while(arr[mid]!=key)  
  12.     {  
  13.         if(key>arr[mid])  
  14.             min = mid + 1;  
  15.         else if(key<arr[mid])  
  16.             max = mid - 1;  
  17.   
  18.         if(min>max)  
  19.             return -1;  
  20.         mid = (max+min)/2;  
  21.     }  
  22.     return mid;  
  23. }  
  24.   
  25. *  
  26. 折半的第二种方式。  
  27. */  
  28. public static int halfSearch_2(int[] arr,int key)  
  29. {  
  30.     int min = 0,max = arr.length-1,mid;  
  31.   
  32.     while(min<=max)  
  33.     {  
  34.         mid = (max+min)>>1;  
  35.   
  36.         if(key>arr[mid])  
  37.             min = mid + 1;  
  38.         else if(key<arr[mid])  
  39.             max = mid - 1;  
  40.         else  
  41.             return mid;  
  42.     }  
  43.     return -1;  
  44. }  

 

 

二维数组:

 

 

格式1:int[][] arr = new int[3][2];

 

 

定义了名称为arr的二维数组

 

 

二维数组中有3个一维数组

 

 

每一个一维数组中有2个元素

 

 

一维数组的名称分别为arr[0], arr[1], arr[2]

 

 

给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;

 

 

格式2:int[][] arr = new int[3][];

 

 

arr中定义了3个未定义长度的一维数组。

 

 

格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};

 

 

arr中定义了3个一维数组。

 

 

第一个一维数组为{3,8,2},第二个一维数组为{2,7},第三个一维数组{9,0,1,6}


---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------