java流程控制循环结构,Chapter5 Java流程控制之循环结构

Lecture1 循环结构概述

三种结构执行特点:顺序结构--从上往下依次执行;选择结构--根据条件执行对应的内容;循环结构--反复执行,往复执行

Java循环结构形式:while循环、do-while循环、for循环、循环嵌套

Lecture2 while循环

while循环语法格式:

/*

循环变量n的值必须先进行初始化;

循环变量n的值必须被改变

*/

while(循环条件){ //为避免死循环,小括号后面不要写分号

语句;

} //若循环体只有一条语句,可以省略大括号

while循环案例:

案例一:

/**

* 使用while循环,求1-5的累加和

*/

public class PlusDemo {

public static void main(String[] args) {

int n = 1;

int sum = 0;//存放和的变量

while (n <= 5) {

sum += n;

n++;

}

System.out.println("循环结束后n的值为:" + n);

System.out.println("累加和为:" + sum);

}

}

案例二:

/**

* 使用while循环输出26个小写英文字母,分两行输出

*/

public class CharDemo {

public static void main(String[] args) {

char ch = 'a';

int count = 1;//控制换行

while (ch <= 'z') {

System.out.print(ch + " ");

if (count % 13 == 0) {

System.out.println();

}

count++;

ch++;

}

}

}

Lecture3 do-while循环

do-while语法格式:

/*

do-while循环至少执行一次

循环条件后的分号不能丢

*/

do{ //若只有一条语句,大括号可以省略

语句;

}while(循环条件);

Tips:局部变量使用前必须初始化且只在定义它的大括号内有效

do-while循环案例:

import java.util.Scanner;

/**

* 使用do-while循环完成一个猜字游戏

* 猜一个介于1-10之间的数字,将输入的数字和实际数字相比较,并给出提示

*/

public class GuessDemo {

public static void main(String[] args) {

/*

利用Math.random()生成随机数(Math.random()生成的

随机数范围是:[0, 1),返回值类型为double类型)

*/

int answer = (int) (Math.random() * 10 + 1);//此时是[1, 11)的整型

int guess;//用户猜测的数字

Scanner sc = new Scanner(System.in);

do {

System.out.println("请输入猜测的数字:");

guess = sc.nextInt();

//提示部分

if (guess < answer) {

System.out.println("太小");

} else if (guess > answer) {

System.out.println("太大");

}

} while (guess != answer);

System.out.println("正确");

}

Lecture4 for循环

for循环语法格式:

/*

表达式1:循环变量初始化,只执行一次

表达式2:循环条件

表达式3:改变循环变量的值

执行顺序:1. 表达式1;2. 表达式2;3.语句;4.表达式3

若省略表达式2,for循环将变成死循环

*/

for(表达式1; 表达式2; 表达式3){//若只有一条语句可以省略大括号

语句;

}

Tips:变量不能重复定义

for循环案例:

/**

* 使用for循环编写一个程序

* 求出200到300之间的数,且满足条件:它们三个数字之积为42,三个数字之和为12。

*/

public class ForLoop {

public static void main(String[] args) {

int unit;//个位

int decade;//十位

int hundreds;//百位

//使用for循环

for(int n = 200; n <= 300; n++){

//取出百位数

hundreds = n / 100;

//取出十位数

decade = n % 100 / 10;

//取出个位数

unit = n % 10;

//计算三个数字之积

int mul = unit * decade * hundreds;

//计算三个数字之和

int sum = unit + decade + hundreds;

//如果积等于42并且和为12,则将满足条件的数输出

if(mul == 42){

if(sum == 12){

System.out.println(n);

}

}

}

}

}

Lecture5 循环嵌套

while循环嵌套:语法格式

while(循环条件){//外重循环

……

while(循环条件){//内重循环

……

}

……

}

for循环嵌套:语法格式

for(表达式1; 表达式2; 表达式3){//外重循环

……

for(表达式1; 表达式2; 表达式3){//内重循环

……

}

……

}

循环嵌套案例:

案例一:

/**

* 使用while循环嵌套输出10行10列的星号

*/

public class StarDemo {

public static void main(String[] args) {

int m = 1;//外重循环的控制变量

int n = 1;//内重循环的控制变量

System.out.println("输出10行10列的星号");

//外重循环控制输出几行

while (m <= 10) {

n = 1;//重新给n赋值

//内重循环控制每行输出几个星号

while (n <= 10) {

System.out.print("* ");

n++;

}

System.out.println();

m++;

}

}

}

案例二:使用for循环嵌套,用星号输出如图的梯形:

36b939d88edd0a2c0b160b87cc3c3711.png

public class StarDemo2 {

public static void main(String[] args) {

for(int i = 1; i <= 5; i++){//外重循环控制行数

for(int j = 1; j <= (5 - i); j++){//第一个内重循环控制输出空格的数量

System.out.print(" ");

}

for(int k = 1; k <= (2 * i + 1); k++){//第二个内重循环控制输出星号的数量

System.out.print("*");

}

System.out.println();

}

}

}

以后会补一篇《Java使用循环打印图形》

案例三:

/**

* 利用for循环嵌套输出1到10的阶乘和

*/

public class FactorialDemo {

public static void main(String[] args) {

int mul = 1;//存放阶乘的和

int sum = 0;//存放阶乘

for(int i = 1; i <= 10; i++){

mul = 1;//重置mul的值

for(int j = 1; j <= i; j++){

mul *= j;

}

sum += mul;

}

System.out.println("阶乘值为:"+sum);

}

}

Lecture6 break语句和continue语句

break语句:用于结束当前循环的执行;执行完break语句后,循环体中位于break语句后的语句不再执行;再多重循环中break语句只向外跳出一层循环

continue语句:continue语句只能用于循环结构;continue语句的作用--结束当前循环的执行,继续下一次循环的执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值