【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);
			}
		}
		
	}
}
相关推荐
懂点Tech7 小时前
ctfshow misc28:GIF 高度修改解题与脚本实现
开发语言·windows·python
comedate7 小时前
SMLib 的 Examples 导读:PyAPI / SM_API / SMLib 三组示例怎么读
python·cad·smlib·examples·sm_api
云和数据.ChenGuang7 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
摇滚侠7 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
小向是个Der8 小时前
嵌入式进阶——MCU上电后的动作
c语言·单片机·mcu·学习·链接脚本
川石课堂软件测试8 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
万化冥合8 小时前
PyBox屏幕键盘如何辅助演示键盘操作?
python·计算机外设
车软学堂9 小时前
从测试转开发,到底要补什么
网络·人工智能·python·功能测试·单片机·车载系统·自动化
天空依然蔚蓝9 小时前
分享一个自动检测网站在线状态的python程序
python·运维开发·1024程序员节
岁月宁静9 小时前
一个 AI 项目从本地到上线,要经过哪些步骤?全流程讲清楚
python·docker·agent