流程控制语句--循环结构--for循环

循环结构:for循环、while循环、do---while循环

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环

体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,

否则循环将一直执行下去,形成死循环。

 

循环语句的组成

  • 初始化语句:

一条或者多条语句,这些语句完成一些初始化操作。

  • 判断条件语句:

这是一个boolean 表达式,这个表达式能决定是否执行循环体。

  • 循环体语句:

这个部分是循环体语句,也就是我们要多次做的事情。

  • 控制条件语句:

这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

 

循环结构(for循环语句)

  • for循环语句格式:

for(初始化语句;判断条件语句;控制条件语句) {

循环体语句;

}

执行流程

  • 执行初始化语句
  • 执行判断条件语句,看其结果是true还是false 如果是false,循环结束。 如果是true,继续执行。
  • 执行循环体语句
  • 执行控制条件语句
  • 回到B继续

 

程序示例

public class ForDemo1 {
public static void main(String[] args) {
   //打印10行HelloWorld
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");

System.out.println("==================用for循环改进==================");

//  int i=1; 初始化值的作用:因为我们要打印10句HelloWorld,从第一次开始,所以
//               我们需要定义一个变量int类型的变量去开始计数,表示第几次循环。
//  i<=10; 条件判断语句,这个语句使用控制是否进入循环的条件。
//  i++ 控制循环体中的条件的变化,在这里表示的是,每循环一次,i++


for(int i=1;i<=10;i++){
System.out.println("HelloWorld");
}

}
}

 


使用for循环的注意事项

  • 条件判断语句只能是boolean类型
  • 当循环体的语句只有一条的时候,可以省略大括号,
    如果循环体的语句有多条的时候,这时候需要添加大括号,如果不添加
    循环语句只针对第一条语句有效。(建议,永远不要省略大括号)
  • 如果在小括号后加分号,默认有一个空语句体,后面的代码为正常的代码块,不参与循环。
  • 初始化语句可以不在for循环中的小括号中体现,但是必须在使用之前定义好。
  • 条件判断语句可以删除,但是删除之后,就没有了控制循环结束的条件,就变成了死循环。
  • 控制条件语句删除之后,也变成了死循环,你可以删除,但是初始化的变量的值一定
    要在循环体中发生变化。

------------------------------------------------------------------------

死循环示例:
for(  ;  ;  ){ 。。。}

 

程序示例
public class ForDemo2 {
public static void main(String[] args) {

int i = 1;     //初始化语句可以不在for循环中的小括号中体现,但是必须在使用之前定义好。

for (; i <= 10; ) {              //如果在小括号后加分号,默认有一个空语句体,后面的代码为正常的代码块,不参与循环。
System.out.println("数加");
i++;                                //控制条件语句删除之后,也变成了死循环,你可以删除,但是初始化的变量的值一定要在循环体中发生变化。
}

}
}

 

例题

/*
求出1-10之间数据之和
*/
public class ForTest2 {
public static void main(String[] args) {
//定义一个变量接收和,初始值我们随便给,这里就给0,建议不要到在后面再赋值,以免忘记,程序报错。
int sum = 0;

for (int i = 1; i <= 10; i++) {
// System.out.println(i);
sum = sum + i;
}

System.out.println("从1-10的和为:" + sum);

}
}

 

例题

/*
偶数:能被2整除的数,叫做偶数
奇数:不能被2整除的数,叫奇数
需求1:求出1-100之间偶数和

需求2:求出1-100之间奇数和

*/

public class ForTest3 {
public static void main(String[] args) {
int sum = 0;

for (int i = 1; i <= 100; i++) {
// System.out.println(i);
//判断是否是偶数,与2进行取模,看看余数是不是等于0
if (i % 2 == 0) {
sum = sum + i;
}
}
System.out.println("1-100的偶数之和为:" + sum);


sum = 0;
for (int i = 1; i <= 100; i++) {
//判断是否是奇数,与2进行取模,看看余数是不是等于1
if (i % 2 == 1) {
sum = sum + i;
}
}
System.out.println("1-100的奇数之和为:" + sum);
}
}

 

例题

/*
请在控制台输出满足如下条件的五位数
个位等于万位
十位等于千位
个位+十位+千位+万位=百位

分析:
1、获取10000-99999的数据
2、获取获取个位,十位,百位,千位,万位
3、&&连接三个条件

12345 % 10 == 5      12345/10 = 1234
1234 % 10 == 4       12345/10/10 = 123
123 % 10 == 3       12345/10/10/10 = 12
12 % 10 == 2        12345/10/10/10/10 = 1
1 % 10 == 1
*/
 

public class ForTest5 {
public static void main(String[] args) {
for(int i=10000;i<=99999;i++){
// System.out.println(i);
//获取个位
int geWei = i%10;
//获取十位
int shiWei = i/10%10;
//获取百位
int baiWei = i/10/10%10;
//获取千位
int qianWei = i/10/10/10%10;
//获取万位
int wanWei = i/10/10/10/10%10;

if(geWei==wanWei && shiWei==qianWei && geWei+shiWei+qianWei+wanWei==baiWei){
System.out.println(i);
}
}

}

}

 

posted @ 2021-11-27 19:14  赤兔胭脂小吕布  阅读(193)  评论(0编辑  收藏  举报