java学习 java -,
java学习 java -,
流程控制 — 循环结构
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构 。循环结构可以看成是一个条件判断语句和一个向回转向语句的组合。
在java语言中循环语句有三个
1、while循环
1
while(循环判断条件){
2
循环体
}
循环的规则:
当判断条件成立时 执行循环体
当判断条件不成立时 结束循环
当循环条件恒成立时 会出现死循环
可以给死循环 写一个出口 来结束循环
执行顺序: 1– >2– >1– >2– >判断条件不成立 停止循环
例题:打印十遍 上班
int number = 0;
while(number < 10) {
System.out.println("上班");
number++;
}
在例题中 首先要定义一个变量 作为 循环判断条件的变量(在变量没有被赋值时 是不可以使用的)。这个变量number 也叫做循环增量
注意:初始化循环增量 只走一次️
步骤: 1.初始化循环增量
2.寻找循环的判断条件
3.写循环体
用一道题来检测下:将1-10的数字相加 打印结果
int aa = 1;
int bb = 0;
while(aa < 11) {
bb += aa; //相当于 bb = bb + aa;
aa++;
}
这道题的思想就是 先将aa + bb的结果保存在bb中 依次循环 一直加到10 结束循环
2、do-while循环
do{
1
循环体(循环内容)
2
}while(循环判断条件)
循环的规则:
先执行一次循环体(无论条件成立与否 都会执行一次循环体)再去判断循环条件
如果成立 就之心循环体 反之 不成立 结束循环
执行顺序:
1– >2– >1……
例题1.将1-10的数字相加 打印结果
int sum = 0;
int aa = 1;
do {
sum += aa;
aa++;
} while (aa < 11);
System.out.println(sum);
例题2.从周一开始打印 并询问明天上班不 输入上班继续打印 反之 停止程序
int number = 1;
Scanner scanner = new Scanner(System.in);
String work = "";
do {
System.out.println("星期" + number);
System.out.println("你明天上班不?输入上班或者不上班");
work = scanner.nextLine();
number++;
} while (work.equals("上班") && number < 8);
与while相同 在每次使用循环时 首先要定义一个变量 作为 循环增量
3、for循环
循环的第三种形式(重点)
for(表达式1;判断条件;表达式2){
循环体
}
1 2 3
for(int i = 0; i < 10; i++){
4
System.out.println(“睡觉”);
}
执行顺序:
1–> 2–> 4–> 3–> 2–> 4–> 3
例题:将1-10的数字相加 打印结果
int sum = 0;
for(int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println(sum);
也就是说 可以用while来做的 也可以用for,可以用for来做的 也可以用do-while。在三个循环语句是可以互相转换的
那for是三个循环语句中最重要的语句 也是 最常使用的 所以 我们着重的说一下for其中的难点——for语句的嵌套
for语句的嵌套如下
for (int i = 0; i < args.length; i++) {
for (int j = 0; j < args.length; j++) {
}
}
像这样的两个(也可以是多个)for语句套在一起就是for语句的嵌套
做一些习题有助于理解和逻辑思维的思考
例题1.打印出下列图形
****
****
****
****
1 2 3
for(int i = 0; i < 4; i++) {
4 5 6
for(int k = 0; k < 4; k++) {
7
System.out.print("*");
}
8
System.out.println();
}
在这里 我们说一下 嵌套后的循环顺序:
1. 1–>2–>
2. 4–>5–>7–>6–>5–>7–>6–>5(不成立时结束内循环)
3. –>8–>3–>2
2. –>4–>5–>7……..
例题2.尖向下的 三角形
*****
****
***
**
*
int a = 5;
for (int i = 0; i < 5; i++) {
for (int j = i; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
改变 内循环的 循环增量的初始值
例题3.尖向上的 三角形
*
**
***
****
*****
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i ; j++) {
System.out.print("*");
}
System.out.println();
}
改变 内循环 判断条件的值
例题4.打印以下图形
1
12
123
1234
12345
for (int i = 1; i < 6; i++) {
for (int j = 1; j <= i ; j++) {
System.out.print(j);
}
System.out.println();
}
相当于打印每次内循环次数的数值
例题5.九九乘法表
int x;
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
x = j * i;
System.out.print(j + "*" + i + "=" + x + "\t");
}
System.out.println();
}
相当于打印外循环和内循环次数数值的乘积
例题6. 打印以下图形
*
* *
* * *
* * * *
* * * * *
for (int i = 0; i < 5; i++) {
for (int j = i; j < 5; j++) {
System.out.print(" ");
}
//拼接后半部分的图形
for (int z = 0; z <= i; z++) {
System.out.print(" *");
}
System.out.println();
}
这个体可以将这个图形转换成例题2和3的结合体 再在*的前面加上空格就可以了
总结 while do-while for 的异同点
在学完这三个循环后,应明确它们的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在表达式1中进行的;while 循环和for循环都是先判断表达式,后执行循环体;而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while 循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环。
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,我们均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序。
相关文章
- 暂无相关文章
用户点评