【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);
			}
		}
		
	}
}
相关推荐
暮毅17 分钟前
四、Drf认证组件
python·django·drf
一 乐22 分钟前
英语词汇小程序小程序|英语词汇小程序系统|基于java的四六级词汇小程序设计与实现(源码+数据库+文档)
java·数据库·小程序·源码·notepad++·英语词汇
曳渔31 分钟前
Java-数据结构-反射、枚举 |ू・ω・` )
java·开发语言·数据结构·算法
laocooon52385788632 分钟前
java 模拟多人聊天室,服务器与客户机
java·开发语言
风槐啊33 分钟前
六、Java 基础语法(下)
android·java·开发语言
DanCheng-studio37 分钟前
毕设 基于大数据情感分析的网络舆情分析系统(源码+论文)
python·毕业设计·毕设
苹果醋339 分钟前
毕业设计_基于SpringBoot+vue的社区博客系统【源码+SQL+教程+可运行】41002
java·毕业设计·博客
DanCheng-studio39 分钟前
大数据 机器学习毕业设计任务书帮助
python·毕业设计·毕设
IM_DALLA44 分钟前
【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL70
学习·fpga开发·verilog学习
布丁不叮早起枣祈1 小时前
10.6学习
学习