JavaSE-3【流程控制语句之循环结构、break&continue、随机数】

  1 package day3;
  2 import java.util.Random;
  3 import java.util.Scanner;
  4 
  5 /**
  6  * @author : haifei
  7  *
  8  * 流程控制语句之循环结构(for, while, do…while, break&continue)、随机数
  9  *
 10  */
 11 
 12 public class Demo1_0519 {
 13     public static void main(String[] args) {
 14 //        test1();
 15 //        test2();
 16 //        test3();
 17 //        test4();
 18 //        test5();
 19         test6();
 20     }
 21 
 22     public static void test1() {
 23         /*
 24         for (初始化语句;条件判断语句;条件控制语句) {
 25             循环体语句;
 26         }
 27         执行流程:
 28             ①执行初始化语句
 29             ②执行条件判断语句,看其结果是true(继续执行)还是false(循环结束)
 30             ③执行循环体语句
 31             ④执行条件控制语句
 32             ⑤回到②继续
 33          */
 34         for (int i = 1; i <= 5; i++) {
 35             System.out.println(i);
 36         }
 37         for (int i = 5; i >= 1; i--) {
 38             System.out.println(i);
 39         }
 40 
 41         // 案例1:求1-100之间的偶数和
 42         int sum = 0;
 43         for (int i = 1; i <= 100; i++) {
 44             if (i % 2 == 0) {
 45                 sum += i;
 46             }
 47         }
 48         System.out.println("sum=" + sum);
 49 
 50         // 案例2:输出所有的“水仙花数”(水仙花数指的是一个三位数,个位、十位、百位的数字立方和等于原数)
 51         /*
 52         问题:任意数字的指定位上的数值如何求?
 53         思路:先对指定数字进行整除'指定数字所在位数',将该数字移动到个位位置(即最后一位),
 54               再对刚刚得到的新数字进行对10取余得到该数字的值
 55         举例:123456789中的5,先将其整除10000(5在万位)得到12345,再将其对10取余得到5
 56          */
 57         int count = 0;
 58         for (int i = 100; i <= 999; i++) {
 59             int ge = i % 10; //相当于i/1%10
 60             int shi = i / 10 % 10;
 61             int bai = i / 100 % 10;
 62             if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
 63                 System.out.println(i);
 64                 count++;
 65             }
 66         }
 67         System.out.println("水仙花数的个数:" + count);
 68     }
 69 
 70     public static void test2() {
 71         /*
 72         初始化语句;
 73         while (条件判断语句) {
 74         循环体语句;
 75         条件控制语句;
 76         }
 77         执行流程同for
 78          */
 79 
 80         for (int j = 1; j <= 5; j++) {
 81             System.out.println("hello java");
 82         }
 83 
 84         System.out.println("================================");
 85 
 86         int i = 1;
 87         while (i <= 5) {
 88             System.out.println("hello java");
 89             i++;
 90         }
 91 
 92         // 案例
 93         int count = 0;
 94         double paper = 0.01;
 95         int zf = 884430;
 96         while (paper <= zf) {
 97             paper *= 2;
 98             count++;
 99         }
100         System.out.println(count);
101     }
102 
103     public static void test3() {
104         /*
105         初始化语句;
106         do {
107             循环体语句;
108             条件控制语句;
109         }while(条件判断语句);
110         执行流程同for
111          */
112 
113         for (int j = 1; j <= 5; j++) {
114             System.out.println("hello java");
115         }
116 
117         System.out.println("=================================");
118 
119         int i = 1;
120         do {
121             System.out.println("hello java");
122             i++;
123         } while (i <= 5);
124     }
125 
126     public static void test4() {
127         /*
128         三种循环的区别
129             for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
130             do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
131         for循环和while的区别
132             条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
133             条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
134         死循环(无限循环)的三种格式
135             1. for(;;){}
136             2. while(true){}
137             3. do{}while(true);
138          */
139 
140         for (int x = 3; x < 3; x++) {
141             System.out.println("for");
142         }
143 
144         int y = 3;
145         while (y < 3) {
146             System.out.println("while");
147             y++;
148         }
149 
150         int z = 3;
151         do {
152             System.out.println("do-while");
153             z++;
154         } while (z < 3);
155 
156         for (int a = 1; a < 3; a++) {
157             System.out.println("for");
158         }
159 //        System.out.println(a); // error
160 
161         int b = 1;
162         while (b < 3) {
163             System.out.println("while");
164             b++;
165         }
166         System.out.println(b); // ok
167     }
168 
169     public static void test5() {
170         //break和continue都是基于条件控制的,用在循环中时,前者结束当前整个循环结构,后者跳过本次循环进入下一次循环
171         for (int i = 1; i <= 10; i++) {
172             if (i % 2 == 0) {
173 //                continue;
174                 break;
175             }
176             System.out.println(i);
177         }
178 
179         // 循环嵌套
180         // 整个内循环,就是外循环的一个循环体,内部循环体没有执行完毕,外循环是不会继续向下执行的
181         // 外循环执行一次,内循环执行一圈
182         for (int hour = 0; hour < 24; hour++) {
183             for (int minute = 0; minute < 60; minute++) {
184                 System.out.println(hour + "时" + minute + "分");
185             }
186             System.out.println("-------------------------------");
187         }
188     }
189 
190     public static void test6() {
191         /*
192         Random使用步骤:
193             1. 导入包
194             2. 创建对象
195             3. 产生随机数
196          */
197         Random rd = new Random();
198         int num1 = rd.nextInt(10); // 产生0-9的随机数
199         System.out.println(num1);
200         int num2 = rd.nextInt(100) + 1; //产生1-100的随机数
201         System.out.println(num2);
202 
203         for (int i = 0; i < 10; i++) {
204             int a = rd.nextInt(10);
205             System.out.println("第" + (i + 1) + "个随机数=" + a);
206         }
207 
208         // 案例:猜数字
209         while (true) {
210             Scanner sc = new Scanner(System.in);
211             System.out.print("请输入你猜测的数字(1-100):");
212             int guessNum = sc.nextInt();
213             if (guessNum > num2) {
214                 System.out.println("猜大了");
215             } else if (guessNum < num2) {
216                 System.out.println("猜小了");
217             } else {
218                 System.out.println("恭喜,猜中咯");
219                 break;
220             }
221         }
222     }
223 
224 }

 

posted @ 2021-05-21 14:26  yub4by  阅读(60)  评论(0编辑  收藏  举报