-
循环结构_for
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
格式:
for(初始化语句;条件判断语句;条件控制语句){ 循环体语句; }
执行流程:
-
执行初始化语句
-
执行条件判断语句,看结果是true还是false
如结果为false,循环结束
如结果为true,循环继续
-
执行循环体语句
-
执行条件控制语句
-
回到2继续
//1.输出1-5 for(int i=1; i<=5; i++){ System.out.println(i); }
循环结束时i=6。
水仙花数实例
int count = 0;//用于储存统计个数 //1.求100到999的水仙花数 for(int i = 100; i<=999; i++){ int a = i % 10;//个位 int b = i /10 % 10;//十位 int c = i /10 /10% 10;//百位 int sum = a*a*a + b*b*b + c*c*c; //水仙花数上一个三位数,水仙花数的个位、十位、百位的数字立方和等于原数 if( sum == i){ System.out.println(i+"是水仙花数"); count ++; } } System.out.println("100~999之间一共有"+count+"个水仙花数");
求任意数字的指定位上的数值:
先使用整除操作将要求的数字移动到个位上,再使用取余操作取出最后一位上的值。
123456789 先整除10000得到12345,再对10取余得到5
-
-
循环结构_while
- 基本格式
while(条件判断语句){ 循环体语句; }
- 完整格式
初始化语句; while(条件判断语句){ 循环体语句; 条件控制语句; }
执行流程:
-
执行初始化语句
-
执行条件判断语句,看结果是true还是false
如结果为false,循环结束
如结果为true,循环继续
-
执行循环体语句
-
执行条件控制语句
-
回到2继续
珠穆朗玛峰实例
public class WhileDemo02{ public static void main(String[] args){ double paper = 0.1; int count = 0; //存储折叠次数 //1.珠穆朗玛峰的高度为8844430毫米,纸的厚度为0.1毫米,折叠一次翻倍 while(paper <= 8844430){ paper *= 2; count++; } System.out.println("需要折叠"+count+"次"); //需要超过8844430,用的paper和8844430做判断 } }
-
循环结构_do…while
- 基本格式
do{ 循环体语句; }while(条件判断语句);
- 完整格式
初始化语句; do{ 循环体语句; 条件控制语句; }while(条件判断语句);
执行流程
-
执行初始化语句
-
执行循环语句
-
执行条件控制语句
-
执行条件判断语句,看结果是true还是false
如结果为false,循环结束
如结果为true,循环继续
-
回到2继续
-
三种循环的区别
三种循环的区别:
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for和while的区别
- 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- 条件控制语句所控制的自增变量,对while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环格式:
for(;; ){}
while(true){}
do{}while(true);
while的死循环格式是最常用的
命令提示符窗口中Ctrl+C可以结束死循环
-
跳转控制语句break、continue
- continue:用在循环中,给予条件控制,跳过某次循环体内容的执行,继续下一次的执行。
- break:用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环。
-
循环嵌套
外循环执行一次,内循环执行一轮。
任何语句对外都可以看成是一句话,一句代码。
分支语句中包含分支语句称为分支嵌套
循环语句中包含循环语句称为循环嵌套
九九乘法表实例
for(int a = 1; a <= 9; a++){ for(int b = 1;b <= a;b++){ //b不超过a System.out.print(a+"×"+b+"="+(a*b)+"\t"); } System.out.print("\n"); //换行 }
//通过while实现九九乘法表 int i = 1; while (i <= 9) { int j = 1;//每次循环结束后需要重置;for循环嵌套有个int j=1;每次会初始化,while需要手动 while (j <= 9 && j <= i) { System.out.print(j + "*" + i + "=" + (i * j) + "\t"); j++; } i++; System.out.println(); }
打印三角形
for (int i = 1; i <= 5; i++) { for (int j = 5; j >= i; j--) { System.out.print(" ");//倒三角形 } for (int j = 1; j <= i; j++) { System.out.print("-");//一半正三角 } for (int k = 1; k < i; k++) { System.out.print("-");//第二行开始的正三角形 } System.out.println(); }
-
增强for循环
java5引入了一种主要用于数据或集合的增强型for循环。
格式:
for(声明语句 :表达式){ //代码句子; }
- 声明语句:声明新的变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语块,其值与此时数组元素的值相等。
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方式。
实际案例
int[] number = {10,20,30,40,50}; //传统遍历 for (int i = 0; i < number.length; i++) { System.out.print(number[i]+"\t"); } System.out.println();//换行 //增强fou遍历 for (int x : number) { System.out.print(x+"\t"); }
-
Random
作用:用于产生一个随机数
使用步骤:
-
导包
import java.util.Random;
导包的动作必须出现在类定义的上面
-
创建对象
Random r = new Random();
上面这个格式里面,r上变量名,可以变,其他的都不允许变。
-
获取随机数
int number = r.nextInt(10);//获取数据的范围:[0,10) 包括0,不包括10
上面这个格式里面,number上变量名,可以变,数字10可以变,其他的都不允许变
猜数字实例
//1.导包 import java.util.Random; import java.util.Scanner; public class RandomDemo{ public static void main(String[] args){ //创建对象 Random r = new Random(); Scanner scanner = new Scanner(System.in); //生成一个0~100的随机数 int flag = r.nextInt(100)+1; //提示 System.out.println("请属于一个0~100的整数"); while(true){ //死循环 int number = scanner.nextInt();//接收输入的数据 if(number > flag){ System.out.println("很遗憾,你猜的数字太大了,请重新输入!"); }else if(number < flag){ System.out.println("很遗憾,你猜的数字太小了,请重新输入!"); }else{ System.out.println("恭喜你,猜中了!"); break;//猜中结束 } } } }
-
JavaSE06_2-流程控制语句_循环结构
最新推荐文章于 2024-10-01 18:51:18 发布