生活中有循环,比如周而复始的生活工作,上课,比如密码的重复校验,而程序世界同样存在着循环。
循环的特点:
重复做类似的事情,而且有终止条件。
类似于这样的情况,Java早就为我们提供了相关的技术解决方案。
for while do while
一、For循环
1.语法格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
2.执行流程
a、执行初始化语句
b、执行条件判断语句,看其结果是true还是false
如果是false,循环结束;
如果是true,继续执行;
c、执行循环体语句
d、执行条件控制语句
e、回到2继续
public static void main(String[] args){
//循环,重复做事情
/*
for(初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
初始化语句:从哪开始 1
条件判断语句:到哪结束 10
条件控制语句:怎么从开始走到结束的
循环体语句:重复做的事情
*/
//定义在for循环里面的变量,其作用域就仅限在for循环里面
for(int i = 1;i<=1;i++){
System.out.println(i+":只要我努力,就一定能成功!!!");
}
//System.out.println(i);//101
//10---1
for(int i=10;i>=1;i--){
System.out.println(i);
}
}
总结:
for循环的特点,适合于如下的循环情况:
1.有规律的
2.重复的
3.循环次数可预见
二、While循环
1.while循环语句格式:
语法格式
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
//while 循环次数是不可预见
//我的梦想,
/*
int target = 10000000;
//关系表达式?表达式1:表达式2
int month = target%3000==0?target/3000:target/3000+1;
System.out.println(month);
*/
//如果每个月都比上个月多存1000,又怎么求解
//month--需要存几个月
/*
int month = 0;
//目前存的钱
int sum = 0;
//初始的基数
int basic = 3000;
while(sum<10000000){
sum += basic;
month++;
//下个月存的基数会比上个月多1000
basic += 1000;
}
System.out.println(month);
*/
三、do While 循环
do…while循环语句格式:
初始化语句:
do{
循环体语句;
控制条件语句;
}while(判断条件语句);
//do-while
//案例一:实现可以无限次录入学员信息的功能,通过指令来控制是否继续(y/n)
//重复做的事:录入学员信息的功能
//循环的条件:输入的指令是y
/*
do{
重复做的事
条件控制语句
}while(条件);
*/
/*
Scanner input = new Scanner(System.in);
int isContinue = 0;
do{
System.out.println("请输入学员信息");
System.out.println("模拟正在录入。。。");
System.out.println("是否继续录入?(y/n 1/0)");
isContinue = input.nextInt();
}while(isContinue == 1);
System.out.println("欢迎下次继续使用");
*/
四、嵌套循环
public static void main(String[] args){
/*
打印一个3行4列的长方形,如下图。逐步来实现
****
****
****
*/
for(int j=1;j<=8;j++){//外层循环:控制行数
for(int i=1;i<=6;i++){//内层循环:控制列数
System.out.print("*");
}
System.out.println();
}
}
五、break,continue,return
break:跳出当前循环体
continue:结束当前循环继续下一次循环
return:被调函数回到主函数继续执行,返回时可附带一个返回值。