1.流程控制语句-循环结构while语句
while循环适用于: 在循环开始之前已经存在了判断条件变量,条件的变化不需要自己控制,不确定循环次数。
格式: 条件初始化;
while(条件判断){
循环体;
条件变化;
}
//实例代码
public class TestWhile{
public static void main(String[]args){
//打印1~10之间的整数
//条件初始化
int i = 1;
while(i<=10){ //条件判断
//循环体语句
System.out.println(i);
//条件变化
i++;
}
}
}
注:语句中应有使循环趋向于结束的语句,否则会出现无限循环––– "死"循环 。
2.流程控制语句-循环结构do.....while语句
格式:do{
循环体;
}while(条件判断);
//实例代码
public class TestDoWhile{
public static void main(String[]args){
//打印1~10之间的整数
//条件初始化
int i = 1;
do{
System.out.println(i);
//条件变化
i++;
}while(i<=10);//条件判断
}
}
注: do...while无论是否满足条件,都至少执行一次,这是while和do-while的主要差别!
3.死循环
循环语句中,当条件判断一直满足时那么程序会一直循环运行下去,这就是所说的死循环。(但有些问题使用死循环可以很巧妙的解决,需要用到关键字break。
//实例代码-break语句的使用
public class TestBreak {
public static void main(String[] args) {
//找到前5个被5整除的整数,在100~300之间,输出打印
int count = 0; //计数器
for(int i=100;i<=300;i++){
if(i%5==0){
System.out.println(i);
count++;
//停止条件
if(count==5){//当coun的数值等于5的时候直接终止整个循环
break;
}
}
}
}
}
)
注意: 以后在使用循环的时候,应该避免死循环的出现
在控制台中强制终止程序的执行-ctrl+c
4. continue语句和break语句
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。(总结就是结束当前本次循环,直接进入到下一次循环)
应用场景:循环中。
//实例代码continue的使用
public class Class010_BreakContinue {
public static void main(String[] args) {
//输出1~10之间的整数,遇到3或者3的倍数跳过
for(int i=1;i<=10;i++){
if(i%3==0){
continue;//碰见能整除3的数直接跳出,继续下一次循环
}
System.out.println(i);
}
}
}
break 语句:在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行终止整个循环 ,不执行循 环中剩余的语句。
应用场景: switch语句、 循环中
5.循环嵌套
循环嵌套指的是在一个循环语句内部再嵌套一循环或多个循环。
格式:for(条件初始化;条件判断;条件变化){
循环体语句;
for(条件初始化;条件判断;条件变化){
循环体语句;
}
循环体语句;
} // 外层循环执行一次,内层循环执行一轮
//实例代码-for循环的嵌套
//打印5行5列的*
public class LoopForTest {
public static void main(String args[]) {
//外层循环变量i控制行 内层循环变量j控制列
//外层控制输出多少行
for (int i=1; i <=5; i++) {
//内层 循环用来输出打印每一行中的多少列
for(int j=1; j<=5; j++){
System.out.print("* ");
}
//每一行打印完成换到下一行
System.out.println();
}
}
}
6.循环嵌套下的break与continue使用
默认针对: 多层循环嵌套下,默认针对内层循环
带标签的break|continue:
在循环开始位置定义标签 标签名:
使用break|continue的时候,指定针对哪一层循环进行操作 break 标签名;
//实例代码-循环嵌套下的brea与continue的使用
public class Class013_BreakContinue {
public static void main(String[] args) {
//行
one://标签名字,随意起
for(int i=1;i<=5;i++){
//列
two://标签名字,随意起
for(int j=10;j<=15;j++){
if(j==13){
break two;//break跟哪一层的标签名,就作用哪一层循环
}
System.out.print(i+"----->"+j+"\t");
}
System.out.println();
}
}
}