for循环的嵌套
越内层的循环执行的次数越多,外层循环每执行一次,内层循环执行一轮(从开始到结束)
public class Demo{
public static void main(String[] args){
//使用*打印一个10行5列的正方形
//外层for循环控制打印多少行
for(int i = 1;i<=10;i++){ //外层每循环一次,内层循环执行一轮(从开始到结束)
//内层for循环控制打印多少列
for(int j = 1;j<=5;j++){ //每打印5次*后,内层循环结束,继续进行外层的循环
System.out.print("* ");
}
System.out.println(); //每完成一次外层循环打印一次换行
}
for(int i = 1;i<=9;i++){ //打印99乘法表
//内层for循环控制打印多少列
for(int j = 1;j<=i;j++){ //j<=i打印出来为直角三角形
System.out.print(j+"+"+i+"="+i*j+"\t");
}
System.out.println(); //每完成一次外层循环打印一次换行
}
}
}
//return:必须放在方法中
//return的主要作用有两点:
//1.返回方法指定类型值
//2.用于方法结束的标志,return 后面的语句不会被执行
public class Test001 {
public static void main(String[] args) {
int i;
System.out.println("return语句之前"+getInfo());
for (i = 0; i < 5; i++) {
if(i==3){
return;//无返回类型,用于方法的结束
}
System.out.println(String.format("i=%d",i));
}
//return 之后的语句将不会被执行
System.out.println("return语句之后"+getInfo());
}
public static int getInfo(){
return 1;//有返回类型,返回方法指定类型的返回值
}}
当循环嵌套时,break和continue的使用
当循环嵌套时,使用break和continue默认对包含它最近的循环生效;
可以将每个循环做一个不同的标记,从而break或continue作用于其他层的循环
//标记遵循标识符的命名规则和规范
格式:
//标记遵循标识符的命名规则和规范
标记1:for(;;){
标记2:for(;;){
}
}
//例如:
one:for(;;){
two:for(;;){
break one; //终止标记为one的循环
}
}
public class Demo{
public static void main(String[] args){
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
System.out.print(j+"--->"+i+"\t");
}
System.out.println();
}
System.out.println("————————————————————————————————");
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
if(j==5){
break; //内循环时,每次当j==5时会停止内循环,继续往下执行外循环的代码
}
System.out.print(j+"--->"+i+"\t"); //当j==5时,此次以及后续内循环中的输出不会被执行
}
System.out.println(); //外循环不受break;的影响
}
System.out.println("————————————————————————————————");
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
if(j==5){
continue; //内循环时,每次当j==5时会跳过本次内循环,直接执行下一次内循环
}
System.out.print(j+"--->"+i+"\t"); //当j==5时,此次内循环中的输出不会被执行
}
System.out.println(); //外循环不受continue;的影响
}
System.out.println("————————————————————————————————");
one:for(int i=1;i<=10;i++){
two:for(int j=1;j<=10;j++){
if(j==5){
break one; //当j==5时会终止编号为one的循环,如果编号为one的循环是在最外层的循环,则整个循环会全部终止
}
System.out.print(j+"--->"+i+"\t"); //当j==5时,不会被执行
}
System.out.println(); //当j==5时,不会被执行
}
System.out.println("\n————————————————————————————————");
one:for(int i=1;i<=10;i++){
two:for(int j=1;j<=10;j++){
if(j==5){
continue one; //j==5时会跳过编号为one的循环的本次循环,编号为one的循环开始下一次循环
}
System.out.print(j+"--->"+i+"\t"); //当j==5时,不会被执行
}
System.out.println(); //当j==5时,不会被执行
}
}
}
方法
方法 :
解决问题的办法
实现功能的代码段
作用:
功能代码的封装
提高代码的复用性与安全性
特点:
1.方法不调用不执行
2.方法定义在类中方法外,方法不能嵌套
定义:
有返回值类型的方法
修饰符 返回值类型 方法名(参数列表){
实现功能的代码段;
return 返回值;
}
修饰符: 访问权限修饰符–>默认public static
返回值类型 : 方法中代码执行完毕之后,是否需要得到一个结果,定义为一个有返回值的方法->方法值的类型就是结果的数据类型
方法名 : 根据方法名字调用方法
标识符->标识符的命名规则与标识符的命名规范
(参数列表) : 参数列表
可以定义参数,可以不定义参数
思考: 方法的定义的时候,执行中,是否存在未知的,不确定的,可能会改变的数据,如果有定义在方法的参数列表上
参数列表: 数据类型 参数名1,数据类型 参数名2…
参数->相当于局部变量的声明
{} : 实现功能的代码段
return : 在有返回值类型方法中必须存在return,并且return后面必须存在值
1)提前结束方法 2)带出返回值 ,返回给方法的调用处
没有返回值类型的方法
修饰符 void 方法名(参数列表){
实现功能的代码段;
return; //不需要返回值,如果遇到return,则会退出整个方法;
}
方法的调用:
执行方法体中的代码
普通调用 : 方法名(参数列表); -->没有办法获取返回值
赋值调用 : 数据类型 变量名 = 方法名(参数列表);
输出调用 : System.out.println(方法名(参数列表));
public class Demo{
public static void main(String[] args){
int num = 0;
//普通调用
noBack();
//赋值调用
num = backInt(2,3);
System.out.println(num);
//输出调用
System.out.println(backInt(4,3));
System.out.println(getPI());
//没有返回值有return的方法
haveReturn(2,4); //x==2,满足if条件,执行return;退出该方法,语句x = x+y;未执行
}
public static void noBack(){
System.out.println("没有返回值");
}
public static int backInt(int x,int y){
return x+y;
}
public static double getPI(){
System.out.println("有返回值没有参数的方法");
return 3.1415926;
}
public static void haveReturn(int x,int y){
System.out.println("x值为:"+x);
if(x==2){
return;
}
x = x+y;
System.out.println("x值为:"+x);
}
}