您的位置:首页 > 职场人生

黑马程序员_JAVA笔记03——循环语句与函数

2013-09-01 16:39 337 查看
------- android培训java培训、期待与您交流! ----------

1 循环结构:while do while for

while(条件表达式) //先判断条件,条件满足再执行语句。
{
循环体 执行语句


}


注意:while(条件表达式)后面不要加;,若加分号则成死循环


题外话:(ctrl+c 强行停止命令行)

do //先执行语句再判断条件,若满足条件再执行循环体。do while 至少执行一次

{

循环体执行语句

}
while(条件表达式);//注意加分号。

for(初始化表达式;循环条件表达式;循环后的操作表达式)//只要是合法表达式即可,不一定非得int x=0.表达式也可以多个,用,分开即可。


{


执行语句


}

例如:for(int x=0;x<3;x++)//x只作用于for中
{
System.out.println("x="+x);


}


执行过程:先int x=0,再x<3,再System.out.println("x="+x);再x++,再x<3,再 System.out.println("x="+x);再x++。。。。。。。其中int x=0只执行一次。
另外:也可以写成:
int x=0;


for(;x<3;)
{
x++;


}


初始化表达式和循环后的操作表达式可以省略,如果这样的话其实直接用while就可以了。


while与for的区别:变量作用域不一样,for中变量只存在于for中,while是全局的。如果变量只为循环存在的话,用for语句,内存会相对优化一些,局部变量再使用完后会立即释放内存空间。另外,for和while可以互换。



注意:
int x=1;


for(System.out.println("a");x<3;System.out.println("c"))


{


System.our.println("d");


x++;


}


运算结果:adcdc



无限循环的最简单表达形式:
for(;;){} //其中表判断的表达式默认为true
while(true){}



2 示例
打印1-10的和

int sum=0;

int x=1;

while(x<=10)

{

sum=sum+x;

x++;

}

1-100之间7的倍数的个数,并打印。
int x=0;//用于存放7的倍数的个数

int y;//用于存放7的倍数
for(int z=1;z<=100;z++)

{
if(z%7==0)

{
x++;

System.out.println(z);

}

}

System.out.println("7的倍数的个数为"+x);

注意:其实这就是累加思想,通过变量记录住循环操作后的结果。

3 语句嵌套形式,循环中含有循环,即循环嵌套
打印九九乘法表
for(int x=1;x<=9;x++)

{
for(int y=1;y<=x;y++)

{

System.out.print(y+"*"+x+"="+x*y+" ");

}

System.out.println();

}

用*打印由每边5个*的等边三角形,

for(int x=1;x<=5;x++)

{
for(int y=5;y>x;y--)

{
System.out.print("");

}

for(int z=1;z<=x;z++)

{

System.out.print("* ");

}

System.out.println();

}

4 其他流程控制语句
break(跳出) :默认跳出所在循环,也可以指定跳出指定循环
应用范围:选择结构和循环结构

w:for(int x=0;x<=9;x++)

{

for(int y=0;y<3;y++)

{

System.out.println("d");

break; //跳出所在循环

break w;//跳出w循环

}

}

continue(继续):跳过continue后面的内容,继续下一次循环。

应用范围:循环结构

for(int y=1;y<=x;y++)
{
if(y%2==1)
continue;
System.out.print(y);
}

w:for(int x=0;x<=9;x++)

{

q:for(int y=0;y<3;y++)

{

System.out.println("d");

continue w;//终止w该次循环,继续下一次循环。

}

}

记住:
break 和contiinue语句作用的范围

break和continue单独存在时, 下面部可以有任何语句,因为都执行不到,编译出错。

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

函数也称为方法。

格式:

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

{

执行语句;

return返回值;

}

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

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

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

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

return:用于结束函数

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

class FunctionTest

{

public static int getSum(int x)

{
int sum=0;

sum=x+8+9;

return sum;

}

public static void main(String[] args)

{
System.out.println(getSum(4));

}

}

函数特点:

定义函数可以将功能代码进行封装

便于对该功能进行复用

函数只有被调用才会被执行

函数的出现提高了代码的复用性

对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写,但写上也不错。

注意:

函数中只能调用函数,不可以再函数内部定义函数(尤其注意在main中)

定义函数时,函数的结果应该返回给调用者,交由调用者处理

6 函数的重载
概念:再同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。

特点:与返回值类型无关,只看参数列表

好处:方便与阅读,优化了程序设计

示例:

//返回两个整数的和

int add(int x,int y){return x+y;}

//返回三个整数的和

int add(int x,int y, int z){return x+y+z;}

//返回两个小数的和

//double add(double x,double y){return x+y;}

什么时候用重载?当定义的功能相同,但参与运算的求知内容不同,那么这是就定义一个函数名称以表示其功能,方便于都,二通过参数列表的不同来区分多个不同名函数。 两个仅仅返回值类型不同的函数不能同时存在同一个类中。

7 数组
概念:同一种类型数据的集合,其实数组就是一个容器。

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

格式1: 元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

示例:int[] arr=new int[5];

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

示例:int[] arr= new int[]{1,2,3};

int[] arr={1,2,3};

new的作用:用于在内存中开辟一个容器实体。

解读:new int[5]:意思是再内存的堆中开辟一个可以容5个元素的实体。

int[] arr:意思是在内存的栈中开辟一个数组型变量arr

int[] arr=new int[5]; 意思是开辟一个容器实体,并把该容器实体的地址赋给数组型变量arr 。 arr中存放的是地址。
数组不赋值时,默认:int 0 double 0.0 float 0.0f boolean false
注意:
int[] arr= new int[]{1,2,3};
arr=null;//null只能赋给引用数据类型变量

将null赋给arr后,表示数组型变量arr不再指向数组,值为空了。而此时new int[]{1,2,3}没有被引用,这种情况下称为垃圾,会被java的垃圾回收机制定期清理,而不是马上清理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: