快读掌握JAVA流程控制的循环结构
流程控制的 循环结构
今天我们来讲一下流程控制的 循环结构。
循环的第一种较为简单的循环结构。(while 循环)
下面是while循环的流程结构
while(循环条件){
循环体
}
循环体的的规则有哪些呢?
1.当判断条件成立时,运行循环体。
2当判断条件不成立时,结束循环。
3.当判断条件恒成立时,会出现死循环。
当然出现死循环也不要怕。我们可以给死循环写一个方法来结束死循环。(下面我会举例子给大家)
现在来说一下循环语句的执行顺序
先执行循环条件,在执行循环体,当循环条件一直成立时,循环体会一直执行。
直到循环条件不成立时,才会停止循环。
接下我写一个例子给大家。
题目;打印十遍睡觉
我们大家一起来找一下思路
我们昨天学到if的时候是不是要先声明一个变量?
这里我们这个变量不叫变量叫做初始化循环增量
那么第一步应该;声明一个初始化循环增量
那第二步我们是不是应该寻找这个循环的判断条件呢?
答案是:是的。
上面说
while(循环条件){
循环体
}
这是循环的流程结构。那我们是不是还缺少一个循环体没有构思呢。所以我们第三步就是写循环体对吧。
接下来我们来写一下。
public static void main (String[]agre){
int number = 0; //初始化循环增量
while(number<10){ //循环条件
System.out.println("睡觉")//循环体 注意;一定要写循环变量不然会变成死循环。
number++;
}
}
下面我们再来练习几道题
打印1-100的数
public static void main (String[]agre){
int num= 0;
while(num<101){
Systrm.out.println("num")
num++;
}
打印1-10的和
int number = 0;
int number1 = 0;
while(number<11)}
number = number+number1;
number++;
{
System.out.println("number")
}
银行定期存款五年以上的利率为7.5%
现在小明要存10000元存十年,那小明十年以后的存款是多少钱呢
提示 (上一年本金=本金+利息)
public static void main (String[]agre){
int num = 1;
double money=10000;
int year = 10;
while(num<year){
money = money+(money*0.075);
num++;
}
System.out.println("money");
}
循环体2
为了反方便快捷我就用数字来表示do while 循环体的流程顺序了
循环体流程结构
do{
// 1️⃣循环体 (循环体的内容)
}while(循环条件){ // 2️⃣
}
do while 循环体的规则
看上面的循环流程循序就知道。
先执行循环体(不管有没有循环条件。或者有循环条件不管它成立与否都会先执行循环体)然后在判断循环条件 ,如果循环条件成立 那么好,就继续执行循环体,如果循环条件不成立循环就会立即结束。
昨天说了变量今天还要提到变量 (重点)
不同的作用域中,变量名可以重复。相同的作用域中,变量名不可以重复。
那到底什么事作用域呢?
通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
接下来我们通过大量的联系来回顾一下昨天的Scanner这条语句,巩固理解一下今天这个do while循环的流程。
题目1:
从周一开始打印 并询问明天上班不 输入上班继续打印 反之 停止程序
public static void main (String[]agre){
//先定义一个初始化循环增量 int num = 1;
Scanner scanner = new Scanner(System.it);
String work ="";
do{
System.out.println("星期"+num);
System.out.println("你明天上班吗?输入:上班或者不上班");
work =scanner nextLine();
number++;
}while(work.equals(上班)&&num<8);
{
接下来我们讲一下死循环 和如何跳出死循环
我们先来写一个死循环。
public static void main (String[]agre){
int a = 1;
int b = 100;
while(a<b){
Systrm.out.println(a);
}
}
答案会无限循环1
那么我们要如何结束他呢
public static void main (String[]agre){
int c = 0;
int a = 1;
int b = 100;
while(a<b){ /输出值为TURE 所以无限循环
if(c ==2){
break; /停止循环的关键。
System.out.println("停止循环")
c++;
}
Systrm.out.println(a);
}
}
这样就停止循环了
接下来我们就要讲我们的重重之重了!!!
for循环
for循环的流程结构
for(表达式(定义循环增量):判断循环的条件:表达式(循环增量增加)){
循环体
}
接下里我们随便写一个程序
需求用for循环打印十个睡觉
public static void main (String[]agre){
1 2 3
for(int = a; a<10;a++){
4
System.out.println("睡觉")
}
}
我们一起来看一下for循环执行的顺序
1-2-4-3-2-4-3 初始循环增量只循环一次。
在这里我们就可以突出说一下作用域的作用了请看下面截图
看我们的
Eclipse报错是什么。
我们将发生错误的话移到FOR循环里
他就没有错误了。这说明什么?
我们再看一个图同样的位置我们多声明了一个初始循环增量
这下应该明白作用域的作用了吧。
number 报错的原因是因为他们都在main入口函数的作用域里所以报错了。
接下来我们练几道题。
题目1:使用for循环求1-10的和。
public static viod main(String[]agre){
int num = 0;
for(int number = 1;number<11;number++){
num= num+number;
}
System.out.println(num);
}
题目2:使用for循环 在1-100中 找出7的倍数的个数
public static void main(String[]agre){
int num =0;
for(int number = 1; number<101;number++){
if(num%7 == 0){
//System.out.println("number");这个的作用是输出那些数是7的倍数,可以省略。
num++;
}
System.out.orintln("num");
}
}
前面讲了这么多大家一起来回顾一下。while 和do while的区别是什么?
如果循环的增量只是用来控制循环的次数
再循环的外面不需要使用时可以选取for循环。
反之循环增量在循环外 你还要继续使用或者操作
这是 你可以选用while循环
for循环的嵌套
public static void main (String[]agre){
for(;;){ 外层循环结构
循环体1
}for(;;){ 内层循环结构
循环体2
}
}
}
接下来我们做一个题。
题目一
用for循环打印下面图形
****
****
****
****
public static void main(Srting[]agre){
1 2 3
for(int num= 0;num<4;num++){
4 5 6
for(int nuu = o;nuu<4;nuu++){
} 7
System.out.print("*"); //打印*
} 8
System.out.println(); //换行
}
提示;初始循环增量在程序中只运行一次。
我们来看一下程序运行的顺序 我们从上面标出来
1-2-4-7-6-5-7-6-5-7-6-5-7-6-5-7(当nuu<4不成立时,结束本次循环体内循环)
8-3-2-5-7-6-5-7-6-5-7-6-5-7-6 (当内循环条件再次不成立时,结束本次循环内循环)
8-3-2-5-7-6-5-7-6-5-7-6-5-7-6
8-3-2-5-7-6-5-7-6-5-7-6-5-7-6
程序结束打印出
****
****
****
****
题目二
打印一个三行六列的矩形
public class lianxi1 {
public static void main(String[]agre) {
for(int num =0;num < 3;num++ ) {
for(int nuu = 0; nuu <6;nuu++) {
System.out.print("*");
}
System.out.println();
}
}
}
题目三
打印一个尖向下的三角形
public class lianxi1 {
public static void main(String[]agre) {
//打印一个尖向下的三角形
for(int num =0;num < 5;num++ ) {
for(int nuu = num; nuu <5;nuu++) {
System.out.print("*");
}
System.out.println();
}
}
}
题目四
打印一个尖向上的三角形
public class lianxi1 {
public static void main(String[]agre) {
for(int num =0;num < 5;num++ ) {
for(int nuu = 0; nuu <num;nuu++) {
System.out.print("*");
}
System.out.println();
}
}
}
题目五
1
12
123
1234
12345
public class lianxi1 {
public static void main(String[]agre) {
for(int num =1;num < 6;num++ ) {
for(int nuu = 1; nuu <=num;nuu++) {
System.out.print(nuu);
}
System.out.println();
}
}
}
题目六
打印
1*1=1
2*2=2 2*2=4
3*3=3 3*3=6 3*3=9
4*4=4 4*4=8 4*4=12 4*4=16
5*5=5 5*5=10 5*5=15 5*5=20 5*5=25
6*6=6 6*6=12 6*6=18 6*6=24 6*6=30 6*6=36
7*7=7 7*7=14 7*7=21 7*7=28 7*7=35 7*7=42 7*7=49
8*8=8 8*8=16 8*8=24 8*8=32 8*8=40 8*8=48 8*8=56 8*8=64
9*9=9 9*9=18 9*9=27 9*9=36 9*9=45 9*9=54 9*9=63 9*9=72 9*9=81
public class lianxi1 {
public static void main(String[]agre) {
for(int ni =1 ;ni<=9;ni++){
for(int nu = 1;nu<=ni;nu++) {
System.out.print(ni + "*"+ ni + "=" +ni*nu +"\t");
}
System.out.println();
}
}
}
我们做了这么多练习应该总结出来一个规律
for循环的外循环控制行数
内层循环控制 每一行 有多少个元素。
今天知识量还是很大的大家回去一定要多多复习多多写题。