一、格式java
for (初始化语句1 ; 循环的条件表达式2; 初始化变量的自增3 ) {编程
循环体语句;4服务器
}学习
模拟执行时会出现的状况:(从左边开始)this
1spa
2 false for语句结束设计
2true -4-3-2true-4-3-2true-4-3-2false-结束code
二、执行流程:对象
三、说明:blog
代码示例
而且:(偏门用法)
代码示例
class Demo_3 {
//for语句的注意事项
public static void main(String[] args) {
//初始化变量只执行一次
for(int i = 1,j=6;i < j/*必须是boolean类型的*/;i = i +3,j=j - 1)/*;*/{
//若是循环体语句中只有一条语句,咱们能够省略大括号
//循环体语句
System.out.println(i+" "+j);//循环体语句是在初始化变量自增前执行
}
}
}
练习1
打印数字1-5
练习2
打印数字5-1
练习3
计算1+2+3+...+100的和
练习4
计算1-100的偶数和
练习5
列举全部的“四叶玫瑰数”,并统计四叶玫瑰数的个数
四叶玫瑰数:是一个四位数,各个位的数字的四次方的和,为该数字自己
一、在一次大的循环中,每次的循环内容(循环体语句)又是一个复杂的操做,是重复的操做,就须要在大的循环体语句中,定义小的循环,称为循环的嵌套(在打印矩形或其余形状的图案时,若是使用两层for嵌套,外层循坏表示行数,内层循环表示列的个数)
二、格式:
for(初始化语句1 (1); 循环条件表达式1(2);初始变量的自增1(3)){
for(初始化语句2(4);循环条件表达式2(5);初始变量自增2(6)){
循环体语句7
}
}
模拟语句运行的流程以下:
1->2false 结束
1 -> 2true ->4 -> 5 false 内层循环结束->3->2 直到2为false 循环结束
1 -> 2true -> 4 -> 5 true -> 7 -> 6 ->5 true(回到7) false-> 3 -> 2(true)回到4 ,2为false结 束
三、执行流程
循环条件表达式1,true,初始化语句2,循环条件表达式2,true,循环体语句,初始变量自增2,循环条件表达式2,false,
代码示例
class Demo_2 { public static void main(String[] args) { //嵌套循环 /* for(初始化语句1;循环条件表达式1;初始化变量自增1){ for(初始化语句2;循环条件表达式2;初始变量自增2){ 循环体语句; } } */ for(int i = 1;i < 6 ;i++){//外层循环循环一次,内层循环是要执行完 for(int j = 1;j < 4;j++){ System.out.println("i = " + i +";j = " + j); } } } }
练习1
使用嵌套循环,打印四行五列星星矩形
*****
*****
*****
*****
提示:打印不换行,使用print方法,不要加ln
class Demo_7 { public static void main(String[] args) { /* 使用嵌套循环,打印四行五列星星矩形 ***** ***** ***** ***** 提示:打印不换行,使用print方法,不要加ln */ //外层循环控制行数,内层循环控制列数 for(int i = 1;i < 5;i++){ //内层循环控制列数 for(int j = 1;j < 6;j++){ System.out.print("*"); } //换行 System.out.println(); } } }
练习2
使用嵌套循环,打印5行5列的直角三角形
*
**
***
****
class Demo_8 { public static void main(String[] args) { /* 使用嵌套循环,打印5行5列的直角三角形 * 1行 打印1列,内层循环1次 ** 2行 打印2列,内层循环2次 *** 3行 打印3列,内层循环3次 **** ***** */ for(int i = 1;i < 6;i++){ for(int j = 1;j <= i;j++){ System.out.print("*"); } System.out.println(); } } }
练习3
打印99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
........................................
1*9=9 2*9=18 3*9=27 .......... 8*9=72 9*9=81
class Demo_9 { public static void main(String[] args) { /* 打印99乘法表 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ........................................ 1*9=9 2*9=18 3*9=27 .......... 8*9=72 9*9=81 */ 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(); } } }
一、格式:
初始化语句
while(条件表达式) {
循环体语句;
初始化变量的自增;
}
二、执行流程:
三、注意事项:
代码示例
class Demo_10 { public static void main(String[] args) { //while语句 /* 初始化语句 while(条件表达式){ 循环体语句; 初始变量的自增; } */ int i = 1; while(i < 6){ System.out.println("爱你一万年"); //初始变量的自增 // i++;//i = i * 2; System.out.println(i++); } } }
练习
使用while循环,统计1-100范围内,有多少数字能够被7整除
class Demo_11 { public static void main(String[] args) { //使用while循环,统计1-100范围内,有多少数字能够被7整除 int i = 1; //定义一个辅助变量用来统计被7整除的个数 int count = 0; while(i <= 100){ //判断是否能够被7整数 if(i % 7 == 0){ count++; } //初始变量的自增 i++; } System.out.println(count); } }
一、格式:
初始化语句;
do {
循环体语句;
初始化变量的自增;
} while (循环条件表达式);
二、执行流程:
三、注意事项:
代码示例
class Demo_12 { public static void main(String[] args) { //do while 语句 //初始化变量 int i = 1; do{ System.out.println("do while虚幻"); //初始化变量的自增 ++i; }while(i < 5); //经常使用的循环语句,for语句,while语句 } }
一、do while语句和其余两种语句的区别:
二、while语句和for的区别:
一、死循环:无限循环。循环永远都不中止。
二、格式:
一、for语句的死循环:
for ( ; ; ) {
循环体语句;
}
二、while语句的死循环:【经常使用】
while (true) {
循环体语句;
}
注意:
//破坏循环的方法:使条件变为false
//方式:1.直接使判断表达式条件变为false 2.经过修改自增表达式(不必定使用a++这种),使判断表达式失效即为false 3.使用break,continue,return,system.exit(0)结束循环/方法/虚拟机
三、死循环的做用:
代码示例
import java.util.Scanner; class Demo_14 { public static void main(String[] args) { //死循环 //for语句的死循环 /* for(;;){ System.out.println("死循环"); } */ //System.out.println("我能执行到吗,好好想一想"); //while语句的死循环 //while (true){ // System.out.println(true); // } Scanner sc = new Scanner(System.in); System.out.println("选择你心仪的战队"); while(true){ int a = sc.nextInt(); if(a == 1){ System.out.println("I like RNG"); break; }else if(a == 2){ System.out.println("I like IG"); break; }else if(a == 3){ System.out.println("I like FPX"); break; }else if(a == 4){ System.out.println("I like SKT"); break; }else if(a == 5){ System.out.println("I like DWG"); break; }else{//不加else有可能一个语句体都不执行,加上后要执行一个语句体 System.out.println("你输入的战队不存在,请从新输入"); }} }}
一、跳转语句:在循环的循环体语句中,结束循环,控制循环,使用的语句。
二、continue语句:
三、break语句:
四、return语句:
五、System.exit(0);
代码示例
class Demo_15 { public static void main(String[] args) { //跳转语句 for(int i = 1;i<=10;i++){ //continue if(i == 5){ continue;//结束本次循环,继续下次循环 } System.out.println(i); } System.out.println("----------=================="); // break语句 for(int i = 1;i<=10;i++){ if( i == 5){ break;// 把整个循环结束了 } System.out.println(i); } System.out.println("------------------------------------"); //return for(int i = 1;i<=5;i++){ for(int j = 1;j < 8;j++){ if( j == 5){ return;// 直接把方法结束了 //break; //结束的是内层循环,外层循环不受影响 //System.exit(0);//把虚拟机结束了 } System.out.println("i = "+i +";j="+j); }}}}
一、具备某种特定功能的代码段
二、某段代码常用,因此使用大括号,将这段代码包起来,起个名字。之后就使用这个名字来代替这段代码。
三、好处:
一、方法定义的格式
修饰符 返回值类型 方法名称 (参数列表) {
方法体语句;
return语句;//使用void时,return后面不接东西,表示结束这个方法,其余返回值类型,return返回对应类型数据做为这个方法的一个结果输出
}
二、详细解释:
注:静态方法在访问本类的成员时,只容许访问静态成员(即静态成员变量和静态方法),而不容许访问实例成员变量和实例方法;实例方法则无此限制。
一、格式:直接书写方法名称便可(在不使用面向对象编程的时候)
方法名称(实际参数);
二、方法调用的三种形式:
三、方法调用整体特色:
方法不调用,就不执行。
代码示例
class Demo_17 { public static void main(String[] args) { //方法的调用 //直接调用 method_1(); method_2(/*实际参数*/5,8); //输出调用 method_3(1,2);//sum System.out.println(method_3(3,4)); //赋值调用 int a = method_3(2,3); System.out.println(a); } //无参数列表,无返回值 public static void method_1(){ System.out.println("method_1 方法被调用了"); } //有参数列表的,无返回值 public static void method_2(/*定义诺干个变量*/int i ,int j){ System.out.println("method_2 方法被调用了"+ "i= "+i +";j="+ j ); } //有参数列表,有返回值的 public static int method_3(/*定义诺干个变量*/int i ,int j){ System.out.println("method_3"); int sum = i + j; return sum; } }
一、方法定义:
二、参数列表:
三、return语句:
一、重载:Overload,超载
二、方法的重载:(只有参数的数据类型,个数,参数的位置这三个改变,才算方法重载)
三、说明:
四、方法重载的好处:
五、当前学习过的常见重载:
println方法,任意类型的数据,均可以放到这个方法中打印
在System.out类型中,将各类数据类型的打印方法,都定义出来了,都起了println方法的名称
代码示例
class Demo_20 { public static void main(String[] args) { //方法的重载 int a = 1; int b = 2; System.out.println(sum(a,b)); double m = 1.2; double n = 1.3; System.out.println(sum(1.2,1.3)); //重载 System.out.println(1);//PrintStream System.out.println(1.2); System.out.println("asdf"); } //在同一个类中,方法名字同样,参数列表不一样(参数的数据类型不同,参数的顺序不同,参数的个数不同)与返回值类型无关 public static int sum(int a,int b){ return a + b; } public static double sum(double a,double b){ return a + b; } /*public static double sum(double aa,double bb){ return aa + bb;不是方法的重载 }*/ public static double sum(double a,int b){ return a + b; } public static double sum(int a,double b){ return a + b; } public static int sum(int a,int b,int c){ return a + b + c; } }
练习1
定义一个方法getMax,能够获取两个整数的较大值
在主方法中,键盘录入两个整数,调用方法获取二者最大值
练习2
定义一个方法isEqual,能够判断两个小数是否相等
在主方法中,键盘录入两个整数,自动提高为小数,调用方法比较二者是否相等
练习3
定义一个方法,能够打印指定行数和列数的矩形
在主方法中,键盘录入两个整数,做为行数和列数,调用方法打印对应规模的矩形import java.util.Scanner;class Practice {
public static void main(String[] args) { /*
练习1
定义一个方法getMax,能够获取两个整数的较大值 在主方法中,键盘录入两个整数,调用方法获取二者最大值 练习2 定义一个方法isEqual,能够判断两个小数是否相等 在主方法中,键盘录入两个整数,自动提高为小数,调用方法比较二者是否相等 练习3 定义一个方法,能够打印指定行数和列数的矩形 在主方法中,键盘录入两个整数,做为行数和列数,调用方法打印对应规模的矩形 */ Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); //boolean boo = isEqual_1(a,b); //System.out.println(boo); //int max = getMax(a,b); //System.out.println(max); printJuXing(a,b); } //获取两个整数的最大值 public static int getMax(int x,int y){ if(x > y){ return x ; }else{ return y; } //int z = x > y ? x : y; //return z; } //比较两个数是否相等 public static void isEqual(double d1,double d2){ String str = d1 == d2 ? "相等":"不相等"; System.out.println(str); } //比较两个数是否相等 public static boolean isEqual_1(double d1,double d2){ return d1 == d2 ? true:false; } //能够打印指定行数和列数的矩形 public static void printJuXing(int hang,int lie){ //嵌套循环 //外层循环控制行,hang for(int i = 1 ;i <= hang;i++){ //内层循环控制列数 for(int j = 1 ;j <= lie; j++){ System.out.print((char)3+" "); } System.out.println(); } return ; } }