【java学习】循环结构和嵌套循环(7)

文章目录

  • 1.循环结构
  • [2. 三种循环语句](#2. 三种循环语句)
    • [2.1. for循环语句](#2.1. for循环语句)
    • [2.2. while循环语句](#2.2. while循环语句)
    • [2.3. do-while循环语句](#2.3. do-while循环语句)
  • [3. 无限循环语句方式](#3. 无限循环语句方式)
  • [4. 嵌套循环](#4. 嵌套循环)

1.循环结构

1.1. 循环语句功能

在某些条件下,反复执行特定代码的功能

1.2. 循环语句的四个组成部分

(1) 初始化部分

(2) 循环条件部分

(3) 循环体部分

(4) 迭代部分

1.3. 循环语句分类

(1) for循环

(2) while循环

(3) do/while循环

2. 三种循环语句

2.1. for循环语句

语法格式:(序号表示执行顺序)
for (初始化表达式①; 布尔值判断表达式②; 更改表达式④){

语句或语句块③;
}

例子如下:

java 复制代码
public class Test1 {
	public static void main (String[] args) {
		
		for (int i = 1; i <= 100; i++){
			System.out.println(i);
			}
	}
}

练习题

编写程序FooBizBaz.java,从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出"foo",在每个5的倍数行上打印"biz",在每个7的倍数行上打印输出"baz"。

答案

java 复制代码
public class FooBizBaz {
	public static void main (String[] args) {
		
		for (int i = 1; i <= 150; i++){
			String str = "";
			str += i;
			
			if(i % 3 == 0) {
				str += "foo";
			}
			if(i % 5 ==0) {
				str += "biz";
			}
			if(i % 7 ==0) {
				str += "baz";
			}
			
			System.out.println(str);
			}
	}
}

2.2. while循环语句

语法格式:
[初始化语句]
while(布尔值判断表达式){

语句或语句块;

[更改语句;]

`}

例子如下:

java 复制代码
public class Test2 {
	public static void main (String[] args) {
		
		int i = 1;
		while(i <= 100) {
			System.out.println(i);
			i++;
		}
	}
}

2.3. do-while循环语句

语法格式:
[初始化语句]
do{

语句或语句块;

[更改语句;]
}while(布尔值判断表达式);

例子如下:

(1)

java 复制代码
public class WhileLoop {
	public static void main (String[] args) {
		
		int result = 0, i = 0;
		do {
			result += i;
			i++;
		}while(i <= 100);
		
		System.out.println("result=" + result);
	}
}

(2)

java 复制代码
public class WhileLoop {
	public static void main (String[] args) {
		
		int m = 1;
		do {
			System.out.println(m);
			m++;
		}while(m <= 100);
		
	}
}

练习题

求1到100之间所有偶数的和。用for和while语句分别完成

答案

(1) for语句

java 复制代码
public class WhileLoop {
	public static void main (String[] args) {
		
		int res = 0;
		for(int i = 1; i < 101; i++) {
			if(i % 2 == 0) {
				res += i;
			}
		}
		System.out.println(res);
		
	}
}

(2) while语句

java 复制代码
public class WhileLoop {
	public static void main (String[] args) {
		
		int res0 = 0;
		int k = 1;
		while(k <= 100) {
			if(k % 2 ==0) {
				res0 += k;
			}
			k++;
		}
		
		System.out.println(res0);
		
	}
}

3. 无限循环语句方式

(1) for无限循环

java 复制代码
for(;;){
}

(2) while无限循环

java 复制代码
while(true){
}

4. 嵌套循环

概念

将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do...while均可以作为外层循环和内层循环。实质上,嵌套循环就是把内层循环当成外层循环的循环体 。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。

:设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n=mn次。

例子如下:

java 复制代码
public class WhileLoop {
	public static void main (String[] args) {
		
		for(int i = 0; i < 4; i++) {      // 每一次循环都会执行大括号里面所有代码
			System.out.println("大循环---" + i);
			for(int j = 0; j < 2; j++) {  // 大循环的次数乘以小循环的次数就是小循环的大括号里面执行代码的次数
				System.out.println("大循环---" + i + "小循环---" + j);
			}
		}
		
	}
}

注意:在写嵌套循环的时候,要尽量保证外层循环的循环次数小于 内层循环的循环次数。

如下:

java 复制代码
		for (int i = 1; i < 900; i++) {
			for(int j = 0; j < 20; j++) {
				
			}
		}
		
		// 在编写代码的时候,像 上面的for循环与底下的for循环可以达到同样的逻辑效果,要尽量使用下面的循环逻辑
		for (int i = 1; i < 20; i++) {
			for(int j = 0; j < 900; j++) {
				
			}
		}

练习题1

java实现九九乘法表

答案1

java 复制代码
public class JchenJ {
	public static void main (String[] args) {
		
		for(int i = 1; i <= 9; i++) {
			for(int j = 1; j <= i; j++) {
				System.out.print(i + "*" + j + "=" + (i * j) +"  "); // print不换行
			}
			System.out.println();   // 换行
		}
		
	}
}

练习题2

输出1~100之间的所有质数
答案2

java 复制代码
public class Zhishu {
	public static void main (String[] args) {
		
		for(int i = 1; i <= 100; i++) {
			int k = 0;   // 整除的次数,变量是在它所在的大括号范围内生效
			
			for(int j = 1; j <= i; j++) {  // 循环1到i,用i与循环1到i之间的数分别取模
				if(i % j == 0) {
					k++;
				}
			}
			
			if(k == 2) {  // 如果循环次数为2,当前大循环的i值就是一个质数
				System.out.println(i);
			}
		}
		
	}
}
相关推荐
消失的旧时光-19439 分钟前
Kotlin reified泛型 和 Java 泛型 区别
java·kotlin·数据
czhc114007566324 分钟前
JAVA111 HashMap Leecode:1 两数之和 3 无重复字符串的长度
java
AI量化投资实验室27 分钟前
年化398%,回撤11%,夏普比5,免费订阅,5积分可查看参数|多智能体的架构设计|akshare的期货MCP代码
人工智能·python
凌冰_30 分钟前
Java Maven+lombok+MySql+HikariCP 操作数据库
java·数据库·maven
武子康32 分钟前
Java-165 Neo4j 图论详解 欧拉路径与欧拉回路 10 分钟跑通:Python NetworkX 判定实战
java·数据库·性能优化·系统架构·nosql·neo4j·图论
代码不停1 小时前
Java二分算法题目练习
java·算法
夫唯不争,故无尤也1 小时前
AI调度框架全解析:从通用到LLM专用
python·大模型·调用框架
Brookty1 小时前
【算法】位运算| & ^ ~ -n n-1
学习·算法·leetcode·位运算
.格子衫.1 小时前
023数据结构之线段树——算法备赛
java·数据结构·算法
Justin_191 小时前
LVS负载均衡集群理论
java·负载均衡·lvs