文章目录
Day05
5.1 循环概念
循环:
在java中做重复的事情,并且重复的只编写一次
好处:
减少代码的冗余性
常用的循环:
for循环,while循环,do while循环
循环特点:
循环条件,循环操作(循环体)
5.2 for循环
语法格式:
for(表达式1;表达式2;表达式3){
循环体
}
- 在for循环中,表达式1:完成变量初始值,如int i = 1;
- 在for循环中,表达式2:完成循环条件判断,如果条件满足为true则执行循环体,否则执行循环外面的语句,如i <5
- 在for循环中,循环体主要做重复事情,并且重复事情在循环体中只编写一次。循环体中可以编写java中的任何语句
- 在for循环中,表达式3:完成变量值的更改,如:i++
综合应用:
class For01 {
public static void main(String[] args){
//输出1-50所有偶数
/* 第一种方法
for(int i = 2;i <= 50;i = i+2){
System.out.println(i);
}
*/
/* 第二种方法
for(int i = 2;i <= 50;i++){
//判断当前i能否被2整除
if(i % 2 == 0){
System.out.println(i);
}
}
*/
//练习:使用for循环输出所有能被6整除的三位数,并且每行显示5个
int count = 0;//统计能被6整除个数
for(int i = 100;i <= 999;i++){
//判断当前数是否为6的倍数
if(i % 6 == 0){
System.out.print(i+"\t");
count++;
//判断当count为5,10.。。时换行
if(count % 5 == 0){
System.out.println();
}
}
}
}
}
5.3 双重循环
也叫二重循环:在一个完整的循环中又包含另一个完整的循环
结论:当外层循环执行一次,这内层循环执行一遍
class for02 {
public static void main(String[] args){
//三行每行6个*
for(int i = 1;i <= 18;i++){
System.out.print("*");
if(i % 6 == 0){
System.out.println("");
}
}
//双重循环
for(int j = 1;j <= 3;j++){
for(int i = 1;i <= 6;i++){
System.out.print("*");
}
System.out.println();
}
}
}
5.4 for循环注意事项
注意:
- 在for循环中三个表达式都可以省略,但分号必须编写,则出现死循环:按ctrl+c
- 在for循环中,省略表达式1,则出现编译错误,解决办法:将表达式1编写在for循环上面
- 在for循环中,省略表达式2,则出现死循环,即条件默认为true
- 在for循环中,省略表达式3,则出现死循环,解决办法:将表达式3编写在循环体中最后一条语句
- 当for循环中表达式1变量中的值在循环外使用,则出现编译错误,解决办法:将表达式1变量在for循环外声明
class For03 {
public static void main(String[] args){
//注意:1.在for循环中三个表达式都可以省略,但分号必须编写,则出现死循环:按ctrl+c
/*
for(;;){
System.out.print("*");
}
*/
//注意:2.在for循环中,省略表达式1,则出现编译错误,解决办法:将表达式1编写在for循环上面
/*
int i = 1;
for(;i <= 5;i++){
System.out.println(i);
}
*/
//注意:3.在for循环中,省略表达式2,则出现死循环,即条件默认为true
/*
for(int i = 1;;i++){
System.out.print("*");
}
*/
//注意:4.在for循环中,省略表达式3,则出现死循环,解决办法:将表达式3编写在循环体中最后一条语句
/*
for(int i = 1;i <= 5;){
System.out.print(i);
i++;
}
*/
//注意:5.当for循环中表达式1变量中的值在循环外使用,则出现编译错误,解决办法:将表达式1变量在for循环外声明
int i;
for(i = 1;i <= 5;i++){
System.out.println(i);
}
System.out.println(i);//6
}
}
5.5 while循环
语法格式:
while (循环条件){
循环体
}
执行流程:
首先判断条件,当条件为true时,则执行循环体,然后再判断条件。。。一直到循环条件为false时,循环结束
class While04 {
public static void main(String[] args){
//练习:while循环输出1-10
/*
int i = 1;
while(i <= 10){
System.out.println(i);
i++;
}*/
//练习:50-100范围内所有奇数
int i = 50;
while(i <= 100){
if(i % 2 != 0){
System.out.println(i);
}
i++;
}
}
}
5.6 do while
特点:先执行,然后再判断
语法格式:
do{
循环体
}while(循环条件);
执行流程:
先执行循环体,然后判断条件,当条件为true时,则继续执行循环体,然后再判断条件
class DoWhile05 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
char info;//注意:info变量必须编写在循环外面进行声明,否则在循环条件中不能使用
do{
System.out.println("编写代码......");
System.out.println("老师检查是否合格?(y/n)");
info = input.next().charAt(0);
//当info值为n时继续编写代码,老师检查
}while(info == 'n');
}
}
5.7 三种循环的异同
语法格式:
for(表达式1;表达式2;表达式3){
循环体
}
while (循环条件){
循环体
}
do{
循环体
}while(循环条件);
执行顺序:
- for循环和while循环:先判断条件为true时,再执行循环体
- do while循环:先执行循环体然后再判断条件
使用情况不同:
- 当循环次数固定时,建议使用for循环
- 当循环次数不固定时,建议使用while循环、do while循环。先判断再执行,则while循环。先执行再判断,则使用do while循环
循环条件第一次为false时:
- for循环执行0次循环体
- while循环执行0次循环体
- do while执行1次循环体
- 得出for循环和while循环:0次-----N次,do while循环1-----N次
5.8 循环中使用break
class DoWhile06 {
public static void main(String[] args){
//输入一批整数,计算所有数的和,当输入0时则程序结束
Scanner input = new Scanner(System.in);
int sum = 0;
do{
System.out.print("请输入一个整数:");
int num = input.nextInt();
//先判断当前数num是否为0
if(num == 0){
//程序结束
break;//表示中断,当在循环中遇到break则结束当前整个循环即do while,执行循环外面语句
}
//对当前num累加求和
sum += num;
}
while(true);
System.out.println("sum="+sum);
}
}
5.9 在循环中使用continue语句
表示继续,结束当次循环继续执行下一次循环
class For07 {
public static void main(String[] args){
//输入5个人的java成绩,统计成绩在95分以上的人数
Scanner input = new Scanner(System.in);
int count = 0;//表示统计95分以上的人数
for(int i = 1;i <= 5;i++){
System.out.print("请输入第"+i+"个人的成绩:");
double score = input.nextDouble();
//判断,当前成绩score,如果在95分及以下则继续输入下一个人的成绩
if(score < 95){
continue;//表示继续,结束当次循环继续执行下一次循环
}
//统计95分以上的人数
count++;//count=1
}
System.out.println("95分以上人数:"+ count);
}
}
5.10 break和continue的区别
使用场合不同
- break:可以在switch case中使用,也可以在循环中使用
- continue:只能在循环中使用
作用不同
- break:表示中断。当在switch case中或在循环中遇到break结束当前整个switch case或循环,执行外面的语句
- continue:表示继续。当在循环中遇到continue时,则结束当次(本次)循环继续执行下一次循环