day05-循环高级训练+leecode练习
1.无限循环
2.条件控制语句
-
break
-
continue
continue:
不能单独存在的,只能存在于循环当中。
表示:跳过本次循环,继续执行下次循环。
eg:
break:
不能单独存在的。可以用在switch和循环中,表示结束,跳出的意思。
eg:
练习1:逢7过游戏:从1-100打印出符合逢7过游戏规则的数字
i % 10 == 7,能抓到所有个位数是7的数,i % 7 == 0,能抓到所有7的倍数。这俩条件永远不变,剩下的,你要抓100以内的,能抓到所有十位数是7的数,就写i / 10 % 10 == 7,你要抓1000以内,能抓到所有百位数是7的数,就加一个i / 100 % 10 == 7,你要抓10000以内的,能抓到所有千位数是7的数,就加一个i / 1000 % 10 == 7,以此类推。
练习2:平方根:键盘录入一个大于等于2的整数 x ,计算并返回 x 的 平方根 。结果只保留整数部分 ,小数部分将被舍去 。
练习3:求质数:键盘录入一个正整数 x ,判断该整数是否为一个质数。
要点:1、设立一个标记位判断是否循环结束
2、将输出是否是质数的语句写在循环外
代码简化:如果输入数字过大,循环执行次数过多,需要提高执行效率
以平方根为展开:
例如81=9*9=3*27,以此展开,a*b=81,其中一个必定<=9,另一个>=9,执行循环,如果在i<=平方根的情况下,都不满足number%i==0,那么一定为质数,从而减少了循环量。(求根会在后续继续补充)
Random随机数的使用:与Scanner相似
小括号里面的是随机数范围,这个数一定是从0开始的,到这个数减一结束,例如r.nextInt(100),就表示从0-99生成随机数.
秘诀:假如生成7-15
练习4:程序自动生成一个1-100之间的随机数,在代码中使用键盘录入去猜出这个数字是多少? 使用循环猜,一直猜中为止。
小提示:千万不要将类名与库名命名一样!!!不要将生成随机数的代码写在循环里面!!!
自我拓展一:限制猜中次数,猜不中就不猜了
思路:引入计数变量,如果猜大或者猜小,另其加一
自我拓展二:增加保底机制,第n次必中,无论猜多少
这里设置3次,运行代码:
运行结果:
无论第三次猜多少,必中的保底机制(和某农相似)