一:循环语句
1.1 循环结构
1.循环结构:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码称为循环体语句,在反复执行这个循环体时,需要在合适的时候将循环判断条件修改为false,从而结束循环,否则会形成死循环。
2.循环结构的分类:
- for循环
- while循环
- do…while循环
1.2 循环结构之for循环
1.for循环语句的格式
for(初始化表达式;判断条件语句;控制条件语句){
循环体语句
}
2.for循环语句的执行流程
- 执行初始化表达式语句
- 执行判断条件语句,返回值是ture还是false。如果为ture,继续执行,否则结束循环
- 条件判断为ture,执行循环体语句
- 执行控制条件语句
- 返回2继续执行知道不符合判断条件语句
- 注意:初始化表达式语句只执行一次
3.for循环案例练习之水仙花数
输出所有的水仙花数
public class daffodil {
public static void main(String[] args) {
/*输出所有的水仙花数
水仙花数:一个三位数,其各位数字的立方和等于该数本身
例如:153=1*1*1+5*5*5+3*3*3=153
153就是一个水仙花数
*/
int count = 0;
//水仙花数是一个三位数,确定循环的范围
for (int i = 100; i < 1000; i++) {
int bai = i / 100;
int shi = i % 100 / 10;
int ge = i % 10;
if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) {
System.out.println(i + "为水仙花数");
count++;
}
}
System.out.println("水仙花数共有"+count);
}
}
运行结果:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcsQXYtJ3bm9CXldWYtlWPzNXZj9mcw1ycz9WL49jb1c0Y11keOFTV6lFMBRlTqZERP1mWqpFeZJjT5VkaaFTVHpVM4MlYsJFWhZHNykVdRdlWppEWadnVzMWdNdVY3lTeMZTTINGMShUYvwlbj5yZtlmbkN3YuQnclZnbvN2Ztl2Lc9CX6MHc0RHaiojIsJye.jpg)
1.3 循环结构之while循环
1.while循环的基本格式
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
2.while循环的执行流程
- 执行初始化条件语句
- 执行判断条件语句,看其返回值,如果是ture继续执行,如果是false则结束循环
- 判断条件为ture,执行循环体语句
- 执行控制条件语句
- 返回2继续执行,知道循环结束。
3.while循环练习之求出1-100的和
public class Test {
public static void main(String[] args) {
//求出1-100的奇数和偶数和
//用while循环1-100的数字,使用if选择语句对数字的奇偶进行判断
int sumji=0;
int sumou=0;
int i=0;
while ( i<=100){
if (i%2==0){
sumou+=i;
}else {
sumji+=i;
}
i++;
}
System.out.println("0-100奇数和为"+sumji);
System.out.println("0-100偶数和为"+sumou);
}
}
运行结果:
1.4 循环结构之do…while循环
1.do…while循环格式
初始化条件语句
do{
循环体语句
控制条件语句
}while(判断条件语句)
2.do…while循环流程
- 执行初始化条件语句
- 执行循环体语句
- 执行控制条件语句
- 执行判断条件语句,判断其返回值,如果是ture,则继续执行。否则结束循环
- 判断结果为ture,返回2,直到循环结束
3.do…while的练习之从1到n的和
public class dowhile {
public static void main(String[] args) {
//键盘获取输入数字
//从1到所输入数字的之和
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
int n = sc.nextInt();
int i=1;
int sum=0;
do {
sum+=i;
i++;
}while (i<=n);
System.out.println(sum);
}
}
1.5 循环结构中三种循环语句的区别
- do.while至少执行一次循环体,for循环和while循环必须先判断条件语句是否成立,然后才能决定是否执行循环体语句
- 选择:如果在循环结束够,继续使用控制条件的变量,则用while循环,否则用for循环。
- 建议使用循环是,优先考虑for循环,然后是while循环,最会是do…while循环。
- 注意:循环中注意控制条件语句控制的变量,不然容易导致死循环
- 两种最简单的死循环格式:
- while(ture){循环体}
- for( ; ; ){循环体}
二:for循环嵌套
1.外部循环循环一次内部循环循环结束后才能进行接下来的外部循环。
2.循环嵌套的案例演示
(1)打印4行5列的星星
public class forfor {
/*
使用for循环嵌套打印出一个4行5列的图案
*****
*****
*****
*****
*/
public static void main(String[] args) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("*"+" ");
}
System.out.println();
}
}
}
运行结果:
(2)使用循环嵌套输出正三角形
import java.util.Scanner;
public class forfor {
/*
使用for循环嵌套打印一个正三角形的图案(底和高相等)
长度有键盘输入
*
* *
* * *
* * * *
............
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入底或者高");
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*"+" ");
}
System.out.println();
}
}
}
运行结果:
(3)九九乘法表
import java.util.Scanner;
public class forfor {
/*
使用for循环嵌套打印乘法表
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入截止的数字");
int n = sc.nextInt();
for (int i = 1; i <=n; i++) {
for (int j = 1; j <= i; j++) {
//"\t" 表示一个tab键
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
(4)使用for循环嵌套打印镂空金字塔
import java.util.Scanner;
public class gold {
/*打印一个镂空金字塔,例如:金字塔的高度由用户输入
* i=0 j=3 k=1
* * i=1 j=2 k=3
* *
* * * *
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入金字塔的高度");
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
//用变量j表示每行的空格数
for (int j = 0; j < n - 1 - i; j++) {
System.out.print(" ");
}//k表示每行*的个数
for (int k = 0; k < 2 * i + 1; k++) {
//第一行和最后一行*全打印
if (i == 0 || i == n - 1) {
System.out.print("*");
} //每行的第一个*和最后一个*打印
else if (k == 0 || k == 2 * i) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
运行结果:
三:控制跳转语句
1.控制跳转语句的分类:
- break 中断
- continue 继续
- return 返回
3.1 控制跳转语句之break语句
1.break语句的使用场景
(1):在选择结构switch语句中使用
(2):在循环语句中
- 注意:离开使用场景的break是没有意义的
3.2 控制跳转语句之continue语句
1.continue语句的使用场景
a.循环体中使用,离开循环体的存在是没有意义的。为的是跳出一次循环,执行下一步操作。
3.3 控制跳转语句之return语句
1.return的作用: 就是退出一个方法以及跳转到上层调用的方法(后面的博客会写到这方面的知识)
3.4 控制跳转语句的使用
案例:分别输出不同的语句
public class control {
public static void main(String[] args) {
for (int i = 1; i <=10; i++) {
if (i%3==0){
//在if中修改代码,便可实现控制打印的次数
break;
}
}
System.out.println("运行的次数");
}
}
当if语句中填写的是break,这是会打印两次,
那么,当我们想要运行7次,填写的应该是continue
for (int i = 1; i <=10; i++) {
if (i%3==0){
//在if中修改continue,便可实现控制打印的次数为7次
continue;
}
}
System.out.println("运行的次数");
运行13次:
for (int i = 1; i <=10; i++) {
if (i%3==0){
//在if中修改System.out.println("运行的次数");便可实现控制打印13次
System.out.println("运行的次数");
}
}
System.out.println("运行的次数");