---------------------- <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代码
- 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练习:
*
**
***
****
*****
Java代码
- 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
Java代码
- 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
Java代码
- 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、实体不在被使用,会在不确定的时间内被垃圾回收器回收
Java代码
- 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]+"]");
- }
- }
获取数组的最大值:
Java代码
- 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];
- }
获取最小值:
Java代码
- 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];
- }
排序方法:
选择排序:
Java代码
- /*
- 选择排序。
- 内循环结束一次,最值出现头角标位置上。
- */
- 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;
- }
- }
- }
- }
折半查找:
Java代码
- /*
- 折半查找。提高效率,但是必须要保证该数组是有序的数组。
- */
- 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;
- }
二维数组:
格式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>、期待与您交流! ----------------------