public class InfiniteloopDemo1 {
public static void main(String[] args) {
//for格式的无限循环
for(;;){
System.out.println("学习");
}
}
}
while (true) {
System.out.println("学习");
}
java复制代码
public class InfiniteloopDemo1 {
public static void main(String[] args) {
//while格式的无限循环
while (true){
System.out.println("学习");
}
}
}
do {
System.out.println("学习");
} while (true);
注意事项:
无限循环的下面不能再写其他代码了,因为循环永远停不下来,那么下面的代码永远执行不到
跳转控制语句
什么是跳转控制语句?
在循环的过程中,跳到其他语句上执行.
练习1:小老虎吃包子(continue)
**需求:**小老虎吃包子,吃到第3个包子就跳过,继续吃后面的包子.
(源代码)
java复制代码
package skiploop;
public class SkipLoppDemo2 {
public static void main(String[] args) {
// 需求:小老虎在吃包子,吃了第3个包子,就跳过,继续吃后面的包子
//1.跳过某一次循环
for (int i = 1; i <= 5; i++) {
if (i == 3) {
//结束本次循环,继续下次循环
continue;
}
System.out.println("小老虎在吃第" + i + "个包子");
}
}
}
(运行结果截图)
练习2:小老虎吃包子(break)
**需求:**小老虎吃包子,吃到第3个包子就吃饱了,后面的包子就不吃了.
(源代码)
java复制代码
package skiploop;
public class SkipLoppDemo1 {
public static void main(String[] args) {
// 需求:小老虎在吃包子,吃了第3个包子就跳过,继续吃后面的包子.
//2.结束整个循环
for (int i = 1; i <= 5; i++) {
System.out.println("小老虎在吃第" + i + "个包子");
if (i == 3) {
//结束整个循环
break;
}
}
}
(运行结果截图)
总结
1.continue:跳过本次循环,继续执行下次循环.
2.break:结束整个循环
练习
案例1:逢七过
朋友聚会的时候可能会玩一个游戏:逢7过
**游戏规则:**从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说:过
**需求:**使用程序在控制台打印出1-100之间的满足逢七必过规则的数据
(源代码)
java复制代码
package test;
public class Test1 {
public static void main(String[] args) {
//1.得到1~100之间的一个数字
for(int i = 1 ; i <= 100 ; i++){
//判断每一个数字,如果符合规则,就打印过,如果不符合规则,就打印真实的数字
if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0){
System.out.println("过");
continue;
}
System.out.println(i);
}
}
}
package test;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
/*需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根.
结果只保留整数部分,小数部分将被舍去.*/
//1.键盘录入一个大于等于2的整数x
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于等于2的整数:");
int number = sc.nextInt();
//2.从1开始循环判断
for (int i = 1; i <= number; i++) {
//用 i * i 再跟number进行比较
if (i * i == number){
System.out.println(i + "就是" + number + "的平方根");
break;
}else if (i * i > number){
System.out.println((i - 1) + "就是" + number + "的平方根");
break;
}
}
}
}
(运行结果截图)
案例3:求质数
**需求:**键盘录入一个正整数x,判断该整数是否为一个质数.
(源代码)
java复制代码
package test;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
//需求:键盘录入一个正整数x,判断该整数是否为一个质数.
//质数:只能被1和它本身整除的数
//分析:
//1.键盘录入一个正整数x
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数x:");
int number = sc.nextInt();
//2.定义一个变量,用来标记number是否为一个质数
//true:是一个质数
//false:不是一个质数
boolean flag = true;
//3.判断该整数是否为一个质数
//写一个循环,从2开始判断,一直判断到number-1为止
//这个范围内,有没有数字可以被number整除
for (int i = 2; i < number; i++) {
//i依次表示这个范围内的每一个数字
if (number % i == 0) {
flag = false;
break;
}
}
/*只有当这个循环结束了,表示这个范围内的每一个数字都判断完毕了,
此时才能断定number是一个质数*/
if (flag) {
System.out.println(number + "是一个质数");
} else {
System.out.println(number + "不是一个质数");
}
}
}
(运行结果截图)
[优化算法]
java复制代码
package test;
public class Test4 {
public static void main(String[] args) {
//100000
/*以81的平方根9为中心,而且假设 a * b = 81
那么a和b中,其中有一个必定是小于等于9的,另一个是大于9的*/
int number = 100;
//如果在这个范围之内,所有的数字都不能被number整除,那么number一定是个质数
for (int i = 2; i <= number的平方根; i++) {
}
}
}
案例4:猜数字小游戏
**需求:**程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?
使用步骤
1.导包 --- Random这个类在哪
import java.util.Random;
导包的动作必须出现在类定义的上边.
2.创建对象 --- 表示我要开始用Random这个类了
Random r = new Random ();
上面这个格式里面,只有r是变量名,可以变,其他的都不允许变.
3.生成随机数 --- 真正开始干活了
int number = r.nextInt(随机数的范围);
上面这个格式里面,只有number是变量名,可以变,其他的都不允许变.
练习1:获取一个随机数
**需求:**生成10次随机数,范围为0 ~ 10
(源代码)
java复制代码
package test;
//1.导包
import java.util.Random;
public class Test5 {
public static void main(String[] args) {
//先获取一个随机数,范围为0~10
//2.创建对象
Random r = new Random();
//3.获取随机数
//口诀:包头不包尾,包左不包右
for (int i = 0; i < 10; i++) {
int number = r.nextInt(11);//0~10
System.out.println(number);
}
}
}
(运行结果截图)
练习2:获取一个随机数
**需求:**生成一个随机数,随机数范围:1 ~ 100
(源代码)
java复制代码
package test;
import java.util.Random;
public class Test6 {
public static void main(String[] args) {
//需求:随机数范围:1 ~ 100
/*秘诀:
用来生成任意数到任意数之间的随机数 如7~15
1.让这个范围头尾都减去一个值,让这个范围从0开始 -7 0~8
2.尾巴+1 8 + 1 = 9
3.最终的结果,再加上第一步减去的值
Random r = new Random();
int num = r.nextInt(9) + 7;//7~15
System.out.println(num);*/
Random random = new Random();
int number = random.nextInt(100) + 1;//1~100
System.out.println(number);
}
}
(运行结果截图)
[代码实现]
(源代码)
java复制代码
package test;
import java.util.Random;
import java.util.Scanner;
public class Test7 {
public static void main(String[] args) {
//需求:程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?
//分析:
//1.生成一个1-100之间的随机数字
Random r = new Random();
int number = r.nextInt(100) + 1;
//2.猜这个数字是多少
Scanner sc = new Scanner(System.in);
//3.判断两个数字并给出不同的提示
while (true) {
System.out.println("请输入你要猜的数字(1-100):");
int guessNumber = sc.nextInt();
if (guessNumber > number) {
System.out.println("你猜的数字" + guessNumber + "大了");
} else if (guessNumber < number) {
System.out.println("你猜的数字" + guessNumber + "小了");
} else {
System.out.println("恭喜你,猜中了");
break;
}
}
}
}
(运行结果截图)
注意事项:
生成随机数的代码 int number = r.nextInt(100) + 1; 不能写在循环的里面的,否则每一次都会产生一个新的随机数.