`

黑马程序员_java基础(二)

 
阅读更多

 ------- android培训java培训、期待与您交流! ----------

 

循环结构:

 

 

while语句格式:

 

 

while(条件表达式)

{

 

         执行语句;

 

}

 

 

do while语句格式:

 

do

{

 

         执行语句;

 

 

}while(条件表达式);

 

 

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

 

 

循环体至少被执行一次。

 

 

格式:

 

 

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

 

{

         执行语句;

}

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

些条件,来控制循环。

 

 

 

break(跳出)  continue(继续):

 

 

 

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

 

 

 

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

 

 

 

forwhile的区别:

 

 

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

 

 

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

 

 

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

 

 

for(int x = 0; x<3 ; x++)
	{
		System.out.println("x="+x);

	}
	
	int y=0;
	while(y<3)
	{
		System.out.println("y="+y);
		y++;
	}
	System.out.println("y===="+y);

 

 

For练习:

 

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

 

for (int x=0; x<5 ;x++ )
	{
		for (int y=0 ; y<=x ; y++ )
		{
			System.out.print("*");
		}
		System.out.println();
	}

 

 

1
12
123
1234
12345

 

for (int x=1; x<=5; x++)
	{ 
		for (int y=1; y<=x;y++ )
		{
			System.out.print(y);
		}
		System.out.println();
	}

 

 

 九九乘法表

 

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

 

 

for (int x=1; x<=9 ; x++)
	{
		for (int y=1; y<=x; y++)
		{
			System.out.print(y+"*"+x+"="+y*x+"\t");
		}
		System.out.println();
	}

 

 

函数:

 

什么是函数:

 

 

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

 

 

函数也称为方法。

 

 

函数的格式:

 

 

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

         {

                            执行语句;

 

                            return 返回值;

         }

 

 

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

 

 

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

 

 

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

 

 

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

 

 

         return:用于结束函数。

 

 

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

 

 

重载:

 

 

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

 

 

特点:

 

 

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

 

 

数组:

 

 

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

 

 

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

 

 

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

 

 

 

栈内存:

 

 

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

 

 

堆内存:

 

 

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

 

 

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

 

 

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

 

 

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

 

 

 

public static void printArray(int[] arr)
	{
		System.out.print("[");
		for(int x=0; x<arr.length; x++)
		{
			if(x!=arr.length-1)
				System.out.print(arr[x]+", ");
			else
				System.out.println(arr[x]+"]");

		}		
	}

 

 

获取数组的最大值:

 

 

public static int getMax_2(int[] arr)
	{
		int max = 0;

		for(int x=1; x<arr.length; x++)//遍历比较数组元素的大小
		{
			if(arr[x]>arr[max])//经较大元素的角标赋值给max
				max = x;
		}
		return arr[max];
	}

 

 

获取最小值:

 

public static int getMin(int[] arr)
	{
		int min = 0;
		for(int x=1; x<arr.length; x++)
		{
			if(arr[x]<arr[min])
				min = x;
		}
		return arr[min];
	}

 

 

 

排序方法:

 

 

 

选择排序:

 

 

 
/*
	选择排序。
	内循环结束一次,最值出现头角标位置上。
	*/
	public static void selectSort(int[] arr)
	{
		for (int x=0; x<arr.length-1 ; x++)
		{
			for(int y=x+1; y<arr.length; y++)
			{
				if(arr[x]>arr[y])
				{
					int temp = arr[x];
					arr[x] = arr[y];
					arr[y]= temp;
				}
			}
		}
	}
	/*
	冒泡排序
	*/

	public static void bubbleSort(int[] arr)
	{
		for(int x=0; x<arr.length-1; x++)
		{									
			for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
			{
				if(arr[y]<arr[y+1])
				{
					int temp = arr[y];
					arr[y] = arr[y+1];
					arr[y+1] = temp;
				}
			}
		}
	}

 

 

 

折半查找:

 

 

	/*
	折半查找。提高效率,但是必须要保证该数组是有序的数组。
	*/
	public static int halfSearch(int[] arr,int key)
	{
		int min,max,mid;
		min = 0;
		max = arr.length-1;
		mid = (max+min)/2;

		while(arr[mid]!=key)
		{
			if(key>arr[mid])
				min = mid + 1;
			else if(key<arr[mid])
				max = mid - 1;

			if(min>max)
				return -1;
			mid = (max+min)/2;
		}
		return mid;
	}

/*
	折半的第二种方式。
	*/
	public static int halfSearch_2(int[] arr,int key)
	{
		int min = 0,max = arr.length-1,mid;

		while(min<=max)
		{
			mid = (max+min)>>1;

			if(key>arr[mid])
				min = mid + 1;
			else if(key<arr[mid])
				max = mid - 1;
			else
				return mid;
		}
		return -1;
	}

 

 

二维数组:

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

  

------- android培训java培训、期待与您交流! ----------

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics