Java笔记day06
day06
一、循环嵌套
以九九乘法表为例
for (int i = 1; i <= 9; i++) { //第一个循环控制的是行
for (int j = 1; j <= i; j++) { //第二个循环控制的时列
System.out.print(j + "*" + i + "=" + (i * j) + "\t");
}
System.out.println();
****输出从1*1到9*9的乘法表****
二、控制语句
break,continue,return
1、出现原因
Java中的goto是保留字,目前不能使用,虽然没有goto语句可以增强程序的安全性,但是也带来很多不便
比如说,想在某个循环知道到某一步的时候就结束,现在就做不了这件事情,为了弥补这个缺陷
Java就提供了break,continue和return来实现控制语句的跳转和中断
break,continue,return 它们都是关键字
2、break
1)、break的使用场景
switch语句和循环语句
根据单独使用的时候报错信息可以得出,break语句是适用于switch语句和循环语句中
1、在switch语句中使用
2、在循环语句中使用
3、单独在if语句中不能使用
2)、break的意义
结束这个循环(以九九乘法表为例)
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + (i * j) + "\t");
}
System.out.println();
if(i==3){
break; //i=3时结束for的外层循环,若在内层循环中使用,则结束的是内层循环
}
}
****输出九九乘法表的前三行****
3)、带标签的break
单层跳出:在当前for循环中使用break,只结束当前for循环
多层跳出:带标签的break,格式:标签名 : 循环语句(开发中如果没有特殊需求,一般不会去使用)
举例:九九乘法表在内循环j是4的时候,break
xiaomiyang : for(int i=1;i<=9;i++){ //外层控制行
xiaocai : for(int j=1;j<=i;j++){ //内层控制列
System.out.print(j+"*"+i+"="+(i*j)+"\t");
if(j==4){
break xiaoyang; //结束当前循环,结束外层循环,换成xioacai则是结束内层循环
}
}
System.out.println();
}
****输出九九乘法表的前四列****
2、continue
1)、continue使用场景
单独使用会报错,根据报错信息可以发现,continue只能在循环中使用
2)、continue的意义
结束这一次循环
for(int i=1;i<=10;i++){
if(i==3){
continue; //结束i=3这一次循环,然后继续i=4的循环
}
System.out.println(i);
}
****输出结果为1 2 4 5 6 ... 9 10****
3、return
1)、return的使用场景
可以在任何地方中执行
2)、return的意义
结束这个方法,return后面的内容不在执行(结束自return开始往上最近的一个方法)
在main方法中使用,就相当于结束了main方法,也就是结束当前java程序
for(int i=1;i<=10;i++){
if(i==3){
return; //当i=3时,结束自return开始往上最近的一个方法)
}
System.out.println(i);
}
****for循环输出为1 2,要根据上下代码确定最终结果****
三、方法
1、概念
简单的说:方法就是完成特定功能的代码块,在很多语言(譬如C语言)里面都有函数的定义
函数在Java中被称为方法
2、格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
}
名词解释:
1)、修饰符
修饰符比较多,但是目前只需要记住一个组合public static
后面面向对象的时候,会详细介绍有哪些修饰符,以及使用方法
2)、返回值类型
定义return返回值的数据类型。
3)、方法名
给这个方法起个名字(符合标识符的命名规则,单个单词小写,多个单词第一个小写,后面单词首字母大写)
4)、参数
a、形参
定义在方法上面的参数名
b、实参
将来实际调用方法传入的值,叫实参
c、参数类型
限定将来调用方法需要传入参数的数据类型
4)、参数名(形参)
是一个变量,用于接收将来调用方法传入的参数,名字见名之意
5)、函数体
完成方法功能的代码,实现主要的方法逻辑
6)、return:
一般情况下,有返回值的方法,才会有return,return的作用是将计算好的
结果返回给调用者,返回的类型是与方法定义的返回值类型一致
7)、返回值:
程序被return带回的结果,返回给调用者
3、分类
1)、有返回值的方法、没有返回指定的方法
2)、有返回值的方法
有返回值的方法调用的时候,有两种处理方式
a、定义一个变量,数据类型与方法返回的数据类型一致,
接收方法返回的值(推荐)
b、直接使用
3)、没有明确返回值的方法
没有返回值的时候,方法上定义的返回值类型为void
void表示该方法,没有任何返回值
4)、注意
a、即使我们的方法没有写返回值类型,也是需要调用才能执行
b、没有明确返回值类型的方法,是可以单独调用的
4、方法重载
在同一个类中,方法名一样,参数列表不一样,这样的现象称之为方法的重载
Java代码执行方法调用时会自动匹配符合要求的那个方法
其中方法的重载与返回值类型无关
5、举例
1)、有返回值举例
需求,计算两个int类型的数之和
public static void main(String[] args) {
int a = 10;
int b = 20;
int res = sum(a,b);
System.out.println(res); //也可以这样输出System.out.println(sum(a,b));
}
public static int sum ( int x1, int x2){
return x1 + x2;
}
****输出结果为a+b的和,30****
****上面的方法也可以写成下面的形式****
**** public static int sum(int x1,int x2){ ****
**** int result = x1+x2; ****
**** return result; ****
**** } ****
2)、没有返回值举例
写一个没有返回值的吃饭的程序
public static void main(String[] args) {
eat();
}
public static void eat(){ //定义一个方法表示吃饭
System.out.println("吃饭");
}
****输出结果:吃饭****
3)、重载举例
写一个能体现Java方法重载的求和方法,并调用执行
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
int res1 = sum(a,b);
System.out.println(res1);
int res2 = sum(a,b,c);
System.out.println(res2);
}
public static int sum ( int x1, int x2){
return x1 + x2;
}
public static int sum ( int x1, int x2,int x3){ //定义一个同名但功能不同的两个方法
return x1 + x2 + x3;
}
****输出中res1=30,res2=60****
6、注意事项
1)、方法不调用不执行
2)、方法与方法是平级的,不能嵌套定义,但是可以嵌套使用
3)、方法定义时参数之间用英文逗号隔开
4)、方法调用的时候不用再传递数据类型,只需要传递数据
5)、如果方法有返回值,一定要有return带回一个返回值,不然会报错
四、附加
报错修改快捷键:将鼠标光标移动至报错的横线上,按下alt+enter
明天继续

浙公网安备 33010602011771号