4.关于for语句:
* 循环结构:
在程序当中总有一些需要反复的/重复的执行的代码,假设没有循环结构,那么这段需要重复执行的代码
自然是需要重复编写的。代码无法得到重复使用。所以多数编程语言都是支持循环结构的。将来把需要
反复执行的代码片段放到"循环体",再联合"计数器",共同控制这段需要反复执行的代码。
* for循环语法结构:
for( 初始化表达式 ; 布尔表达式 ; 更新表达式 ){
//是需要重复执行的代码片段【循环体:由java语句构成】
}
* for循环的执行过程/执行原理?【非常重要】
. 初始化表达式,布尔表达式,更新表达式都不是必须的!
. 初始化表达式最先执行,并且在整个for循环当中只执行一次。
. 布尔表达式必须是true/false,不能是其他值。
. for的执行过程:
* 先执行初始化表达式,并且该表达式只执行一次
* 判断布尔表达式的结果是true还是false
- 布尔表达式true
执行循环体
执行更新表达式
判断布尔表达式的结果是true还是false
- 布尔表达式true
执行循环体
执行更新表达式
判断布尔表达式的结果是true还是false
.......
- 布尔表达式false
循环结束
- 布尔表达式false
循环结束
i变量的作用域:
//以下for循环当中的"i"变量的作用域仅限于当前for循环内部使用。
for(int i = 0;i < 10 ;i++){
System.out.println("i -->> + i");
}
//main方法作用域当中的变量i,只要main方法没有结束,这里的i就能用。
int i = 0;
for( ;i < 10 ;i++){
System.out.println("i -->> + i");
}
//这里可以访问main方法作用域当中的i变量
System.out.println("i -->> + i"); //10
for循环嵌套for循环:
//循环体中可以编写其他控制语句
//控制语句可以嵌套使用
//控制语句可以是:if,if...else,switch,for,while,do...while
//内层循环中的变量名和外层循环中的变量名不能重名
//最好不要想太多,即使循环体当中是一个for循环,不要将这个for特殊化,也是只一个普通的for循环
//只不过是一段符合java语法的代码
for(int i=0;i<10;i++){
//这里是循环体,无论这个循环体当中编写了什么样的代码,这堆代码也需要执行10遍
for(int j=0;j<3;j++){
System.out.println("j -->" + j);
}
} for(int i=0;i<10;i++){
//这里相当于10次输出(3次输出012)
for(int j=0;j<3;j++){ //
for(int k=0;k<3;k++){ //
System.out.println("j -->" + j); //这里相当于3次输出012
}
}
for(int i=1;i<=5;i++){
System.out.println("开始");
for(int j=1;j<=5;j++){
System.out.println(j);
}
System.out.println("结束");
}
/*
结果:
开始
1
2
3
4
5
结束
*/
5次
for(int i=1;i<=5;i++){
System.out.println("开始");
for(int j=1;j<=5;j++){
System.out.println(i*j);
}
System.out.println("结束");
}
/*
结果:
开始
1*1
1*2
1*3
1*4
1*5
结束
开始
2*1
2*2
2*3
2*4
2*5
结束
....
使用for循环输出九九乘法表:【横向纵向进行分析解剖】
11=1
21=2 22=4
31=3 32=6 33=9
…
…
91=9 …99=81
for(int i=1;i<=9;i++){ //外层循环9次,i是行号
//循环体当中的程序主要的任务是什么?
//处理当前行,将当前行中所有的项目全部输出
for(int j=1;j<=i;j++){
System.out.print(i + "*" + j + "=" + i * j + " ")
}
//换行
System.out.println();
//System.out.print("\n");
}编写for循环找出1~100中所有的素数
素数:又被称为质数,能够被1和自身整除,不能被其他数字整除的数字称为素数。
升级版:
编写for循环找出1~10000中所有的素数
要求每8个换一行输出
5.关于while循环语句:
-
while循环的语法结构:
while(布尔表达式){
循环体;
} -
while循环的执行原理:
先判断布尔表达式的结果:
- true
- 执行循环体
- 判断布尔表达式的结果:
- true
- 执行循环体
- 判断布尔表达式的结果:
- true
- 执行循环体
- 判断布尔表达式的结果:
… - false
-循环结束
- true
- false
-循环结束
- 执行循环体
- false
-循环结束
- true
-
while循环的循环次数:
0 ~ N次
注意:while循环的循环体可能执行次数为0次。
--------------------------------------------------------------------------------------------------
//死循环
while(true){
System.out.println("呵呵");
}
//编译器检测到该程序永远无法被执行,所以编译报错。
System.out.println("啊啊");
//编译不会出错,但运行时会进入死循环【因为变量只有在运行时才开辟,所以编译器不会知道这里是true】
int i = 10;
int j = 3;
while(i > j){
System.out.println("呵呵");
}
//编译错误
while(10 > 3){
System.out.println("呵呵");
}6.关于do...while循环:
* do...while循环的语法结构:
do{
循环体;
}while(布尔表达式);
* do...while循环的执行原理
* do...while循环的执行次数:
do...while循环的循环体代码片段执行次数是:1-N次【至少一次】
* 使用do...while循环语句的注意事项:
do...while循环语句最终有一个"分号"别丢了。
7.关于java控制语句当中的break语句:
* break是java语言当中的关键字,被翻译为"中断/折断"
* break + ";" 可以成为一个单独的完整的java语句:break;
* break语句使用在switch语句中,用来终止switch的语句执行。
* break;语句同样可以使用在for,while,do...while循环语句当中用来跳出循环,终止循环的执行。
因为当程序循环到某个条件的时候,后续的循环没必要执行了,再执行也是耗费资源,所以可以终止循环,
这样可以提高程序的执行效率。
* break终止哪个循环呢?
在默认情况下,break终止的是离它最近的循环语句。当然也可以指定终止某个循环,
需要给循环起名,采用这种语法:break 循环名称;
//以下语法使用较少。
//给for循环起名for1
for1:for(int j=0;j<3;j++){
//给for循环起名for2
for2:for(int i=0;i<10;i++){
if(i == 5){
break for1; //终止for1循环
}
System.out.println("i -->" + i);
}
}
8.关于java控制语句当中的continue语句:
* continue表示:继续/go on/下一个
* continue也是一个continue关键字加一个分号构成一个单独的完整的java语句,主要
出现循环语句当中用来控制循环的执行。
* break和continue的区别?
- break表示循环不执行了。
- continue表示直接进入下一次循环继续执行。
* continue也有这样的语法:
continue 循环名称;【作为了解内容】