1、break和contiune
2、重载
3、递归
1、break和contiune的区别:
break结束本次循环
contiune结束当前循环,继续下列程序
package lf.chuji.jiegou;
public class TestBreak { public static void main(String[] args) { //生产随机数,0~100的 到88结束循环 int count=0;//计数器
//生成随机数
while(true) {
int a=(int) (100*Math.random());
System.out.print(a+"、");
count++;
if(a==88) {
break;
}
}System.out.println("计数器:"+count);
}
}
package lf.chuji.jiegou;
public class TestContinue {
public static void main(String[] args) {
//把100~150之间不被三整除的数输出,并每行输出五个
int count=0;//定义计数器
for(int i=100;i<=150;i++) {
if(i%3==0) {
continue;
}
System.out.print(i+"、");
count++;
if(count%5==0) {
System.out.println();
count=0;
}
}
}
}
1.1带标签的continue,break
由于break和continue关键字通常只中断当前循环,但若随同标签使用,他们就会中断到存在标签的地方。
package lf.chuji.jiegou;
public class TestBiaoQianContinue {
public static void main(String[] args) {
// TODO Auto-generated method stub
//输出100-150之间的质数
outer:for(int i=100;i<=150;i++) {
for(int j=2;j<i/2;j++) {
if(i%j==0) {
continue outer;
}
}
System.out.println(i);
}
}
}
//测试方法的基本使用
方法可以反复调用
无返回值--void
return 1、结束方法的类型2、返回值、
提示:
1、实参的数目、数据类型和次序必须和调用的方法声明的形式参数列表匹配
2、return语句终止方法的运行并指定返回的数据
3、Java中进行方法调用中传递的是该数据值的cope值
4、引用类型传递的是该对象引用的cope值,但指向的是同一个对象
package lf.chuji.jiegou;
public class TestMethod {
public static void main(String[] args) {
// TODO Auto-generated method stub
//通过对象调用方法
TestMethod tm=new TestMethod();
tm.yinyu();
tm.add(2, 3);
int sum=tm.add(23, 49)+90;
System.out.println(sum);
}
//无返回值
void yinyu() {
System.out.println("Good Boy!");
}
//有返回值
int add(int a,int b) {
int c=a+b;
System.out.println(c);
return c;
}
}
方法内没有static就要通过new对象调用方法
有static就可以直接调用
2、方法重载:
重载的方法,实际是完全不同的方法,只是名称一样
个数不同可以构成重载
参数类型不同可以构成重载
顺序不同可以构成重载
只有返回值不同,不构成方法的重载
参数名称不同,不构成方法的重载
package lf.chuji.jiegou;
public class TestOverLoad { public static void main(String[] args) {
add(2,3);
//我们已经见过的方法重载
System.out.println();//0个参数
System.out.println(1);//一个类型为int的参数
System.out.println(2.0);//一个类型为double的参数
}
//个数不同
static void add(int a,int b) {
int v=a+b;
System.out.println(v);
}
static void add(int a,int b,int c) {
// TODO Auto-generated method stub
int v=a+b+c;
System.out.println(v);
}
//参数类型不同
private void shengfa(int a,double b) {
// TODO Auto-generated method stub
double t=a*b;
System.out.println(t);
}
//顺序不同
private void shengfa(double b,int a) {
// TODO Auto-generated method stub
double t=a*b;
System.out.println(t);
}
}
3、递归方法:
递归可以自己调用自己
但是递归费时内存消耗大
能用循环替代递归的就用循环
小tips:long d1=System.currentTimeMillis();//用作计算时间的
package lf.chuji.jiegou;
public class TestDiGui {
public static void main(String[] args) {
// TODO Auto-generated method stub
//计时的方法
long d1=System.currentTimeMillis();
long d2=System.currentTimeMillis();
//用C++的方式表达输出
System.out.printf("%d阶乘的结果%s%n:",10,a(10));
System.out.println(d2-d1);
}
//递归:
static long a(int n) {
// TODO Auto-generated method stub
if(n==1) {
return 1;//递归头
}else {
return n*a(n-1);//递归体
}
}
}