break和continue语句+函数+函数重载-第4天

break和continue语句+函数+函数重载

1、break和continue语句

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

{

system.out.println("x="+x);

break;//跳出for循环。

system.out.println("x="+x);//不执行

}

对比:

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

{

if(x==1)

break;

system.out.println("x="+x);//x=0时,会执行一次

 

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

{

for(int y=0;x<4;y++)

{

system.out.println("x="+x);

break;//打印三次x=,break控制内循环所在的for。即打印一次x=,返回到外循环。

}

}

 

w:for(int x=0;x<3;x++)//标识号只能用在循环中,起名字,记住就行。w可以用haha代替

{

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

{

system.out.println("x="+x);

break w;//打印一次x=0,break控制外循环w循环所在的for

}

 

continue:只能作用于循环结构,继续循环。特点:结束本次循环,继续下一次循环。

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

{

system.out.println("x="+x);

continue;//返回到for循环语句,继续执行x++,感觉是多余的语句。

}

对比:

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

{

continue;//返回到for循环

system.out.println("x="+x);//不执行,无打印输出。

}

 

需求:打印1-10中的偶数:

for(int x=0;x<=10;x++)

{

if(x%2==1)//余数为1即为奇数。

continue;//遇到奇数,返回到for循环。

system.out.println("x="+x);//打印1-10中的偶数。

}

 

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

{

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

{

system.out.println("x="+x);

continue w;//打印三次x=,continue控制w循环所在的for

}

}

记住:

1、break和continue语句作用的范围

2、break和continue单独存在时,他的后面不可以有任何语句,因为都执行不到

 

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

{

continue;

system.out.println("x="+x);//错误,无法访问语句

}

 

单独使用break:

break;//错误,在switch或loop外部中断使用。

 

 

2、循环语句练习

----*

---* *

--* * *

-* * * *

* * * * *

先打印左边的-。(尖朝下,改变y的初始值)

for(intx=0;x<5;x++)//别忘记说明类型int

{

for(int y=x;y<5;y++)//对比for(int y<x;y<5;y++)这个是

{

system.out.print("-");

}

system.out.println();

}//打印:

-----

----

---

--

-

打印组合的图形。

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

{

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

{

system.out.print("-");

}

for(int z=0;z<=x;z++)//此处定义一个新的z,而不能投机取巧用y来代替。

{

system.out.print("* ");

}

system.out.println();

}//打印:

-----*

----* *

---* * *

--* * * *

-* * * * *

用空格’ ’代替*。观察变化后的图形。

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

{

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

{

system.out.print(" ");

}

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

{

system.out.print("* ");

}

system.out.println();

}//打印:

    *

    **

   ** *

  * ** *

 * ** * *

对比发现把每一行的空格减少一个就可以实现图形的功能。怎么实现y减少1呢?

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

{

for(int y=x+1;y<5;y++)//减少空格的打印行数

{

system.out.print(" ");

}

for(int z=0;z<=x;z++)//需要定义新的变量z,不能借用y变量。

{

system.out.print("* ");

}

system.out.println();

}//打印:

    *

   **

  * **

 * ** *

* * * * *

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

{

for(int y=x+1;y<5;y++)//减少空格的打印行数

{

system.out.print("-");

}

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

{

system.out.print("* ");

}

system.out.println();

}///打印:

----*

---* *

--* * *

-* * * *

* * * * *

 

 

3、函数概括

函数就是方法,就是具有特定功能的一段小程序

int x=4;

system.out.println(x*3+5);

int x=6;

system.out.println(x*3+5);

//以上的运算,在获取不同数据的运算结果,代码出现了重复

//为了提高代码的复用率,对代码进行抽取

//将这部分定义成一个独立的功能,方面日后使用。

//java中对功能的定义的是通过函数形式来体现。

 

//定义一个整数*3+5的运算;

 

函数的格式:

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

执行语句

return 返回值;

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

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

return:用于结束函数。

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

 

//1、先明确函数定义的格式

int x=getResult(4);

system.out.println("x="+x);

int y=getResult(6);//函数可以被重复使用

public static int getRseult(int num)

{

return num * 3 + 5;

}

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

 

函数没有具体返回值时,返回值类型用关键字void表示,return语句如果在最后一行,可以省略不写

getResult(5);

public static int getRseult(int num)//编译错误

{

system.out.println(num * 3 + 5);//没有具体的返回值

}

对比:

getResult(5);

public static voidgetRseult(intnum)

{

system.out.println(num * 3 + 5);//打印20。没有具体的返回值,可以省略return

}

函数中只能调用函数,不可以在函数内部定义函数。

pubic static void main(sting[],args)

{

public static int getr(int num)

{

return num+4;//错误。在主函数中没有定义功能函数。

}

}

 

 

4、函数应用

如何定义一个函数呢?

1、既然函数是一个独立的功能,那么该功能的运算结果是什么先明确

因为这是在明确函数的返回值类型

2、再明确定义该功能的过程中是否需要未知的内容参与运算

因为这是在明确函数的参数列表

 

//定义一个功能,完成3+4的运算,并将结果返回给调用者。

1、明确功能的结果:是一个整数的和

2、在实现该功能的过程中,是否有未知内容参会运算,没有

其实这两个功能就是在明确函数的定义

1、返回值类型

2、明确函数的参数列表(参数的类型和参数的个数)

 

public static void main(sting[] args)

{

int sum=getsum();

system.out.println("sum="+sum);

public static int gesum()//不需要添加新的参数变量,如(int n)

{

return 3+4;//打印7

}

}

//以上函数的功能,结果是固定的,毫无扩展性而言。

 

为了方便用户需求,由用户来指定加数和被加数。这样,功能才有意义。

思路:

1、功能结果是一个和,返回值类型是int

2、有未知数参与运算,有两个,这两个未知内容的类型是int

public static void main(sting[] args)

{

int sum=getsum(4,6);

system.out.println("sum="+sum);

public static int gesum(int x,int y)

{

return x+y;

}

}

 

需求:判断两个数是否相同

思路:

1、明确功能结果:结果是:boolean类型

2、功能是否有未知内容运算。有,两个整数

方法1:

public static booleancompare(int a,int b)//万万没想到,竟然用的是布尔型。!!!

{

if(a==b)

return true;

else

return false;

}

方法2:

public static boolean compare(int a,int b)

{

return (a==b)?true:false;//这里用到了三元运算符

}

方法3:

public static boolean compare(int a,int b)

{

return a==b;//精简版

}

 

需求:对给定的两个数定义功能,对两个数进行比较,获取较大的数。

方法1:

pubic static int max(int a,int b)

{

if(a>b)

return a;

else

return b;

}

方法2:

pubic static int max(int a,int b)

{

return (a>b)?a:b;

}

 

system.out.println(get(4,5));//错误,函数void没有具体的返回值,无法打印。

pubic static voidget(inta,int b)

{

system.out.println(a+b);

return;

}

对比:

get(4,5);//打印9。返回语句已经包含打印,直接调用即可。

pubic static void get(int a,int b)

{

system.out.println(a+b);

return;

}

 

 

5、函数练习

1、定义一个功能,用于打印矩形。

for(int x=0;x<4;x++)

{

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

{

system.out.print("*");

}

system.out.println();

}

 

打印矩形8*9

for(int x=0;x<8;x++)

{

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

{

system.out.print("*");

}

system.out.println();

}

 

思路:

1、确定的结果:没有,因为直接打印,返回值类型是void

2、有未知内容吗?有,两个,因为矩形的行和列不确定。

draw(5,6);

pubic static void draw(int row,int col)

{

for(int x=0;x<row;x++)

{

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

{

system.out.print("*");

}

system.out.println();

}

 

class Demo

{

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

{

system.out.println("haha");

}//错误,没有入口,少主函数

}

 

定义一个打印99乘法表功能的函数

print99();

public static void print99()//无需内部定义变量

{

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();

}

 

 

6、函数重载

重载概念:在同一个类中,允许存在一个以上的同名函数,只有它们的参数个数或参数类型不同即可。(同名不同参)

重载只和参数列表有关系。

//什么时候用重载?

当定义的功能相同,但参与运算的未知内容不同。那么这时,就定义一个函数,方便阅读。

定义一个加法运算,获取两个整数的和。

pubic static void main(sting[] args)

{

add(4,5);

add1(4,5,6);//阅读起来不方便,和add的功能相似。

}

public static int add(int x,int y)

{

return x+y;

}

定义一个加法运算,获取三个整数的和。

public static int add1(int x,int y,int z)

{

return x+y+z;

}

对比:

pubic static void main(sting[] args)

{

add(4,5);

add(4,5,6);//利用重载,进行重命名。

}

 

public static int add(int x,int y)

{

return x+y;

}

定义一个加法运算,获取三个整数的和。

public static int add(int x,int y,int z)

{

return x+y+z;

}

化简如下:

public static int add(int x,int y)

{

return x+y;

}

定义一个加法运算,获取三个整数的和。(嵌套函数的使用,函数中还有函数)

public static int add(int x,int y,int z)

{

return add(x,y)+z;

}

 

定义一个打印99乘法表功能的函数

print99();

public static void print99()

{

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

{

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

{

system.out.print(y+"x"+x+"="+y*x+"\t");

}

system.out.println();

}

深化:定义一个打印乘法表功能的函数

print99(4);

public static void print99(int num)//只需一个变量即可。

{

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

{

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

{

system.out.print(y+"x"+x+"="+y*x+"\t");

}

system.out.println();

}

简化形式如下:

定义一个打印99乘法表功能的函数

print99();

public static void print99()//再次利用函数的重载

{

print99(9);//调用下面的函数。

}

print99(4);

定义一个打印自定义乘法表功能的函数

public static void print99(int num)

{

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

{

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

{

system.out.print(y+"x"+x+"="+y*x+"\t");

}

system.out.println();

}

 

 

7、函数重载练习

1、void show(int a,char b,double c){}对比下面函数是否重载:

a、void show(int x,char y,double z){}//没有,和原函数一样

b、int show(int a,double c,char b){}//重载,参数类型不同。注意:重载和返回值类型没关系

c、void show(int a,double c,char b){}//重载,参数类型不同。

d、void show(int c,char b){}//重载,参数个数不同

f、double show(intx,chary,double z){}//没有,这个函数不允许和给定函数同时存在一个类中。因为不确定返回值是double还是void型

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值