一、无限循环
无限循环:循环一直停不下来
三种格式:
for循环(知道循环范围和循环次数)
for(;;){
System.out.println(“学习”);
}
while循环(不确定循环范围和循环次数)
while(true){
System.out.println(“学习”);
}
do……while循环
do{
System.out.println(“学习”);
}while(true);
二、跳转控制语句
在循环的过程中,跳到其他语句上执行。
break
break:结束整个循环。
代码演示如下:
public static void main(String[] args) {
// break
for(int i=1;i<=5;i++) {
if(i==3) {
break;
}
System.out.println("吃第"+i+"个包子");
}
}
运行结果如下:
continue
continue:跳过本次循环,继续执行下次循环。
代码演示如下:
public static void main(String[] args) {
// continue
for(int j=1;j<=5;j++) {
if(j==3) {
continue;
}
System.out.println("吃第"+j+"个包子");
}
}
运行结果如下:
三、循环练习
逢7过
需求:使用程序在控制台打印出1-100之间的满足封七过规则的数据。
游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍
数时都要说过
代码如下:
public static void main(String[] args) {
// 逢7过游戏
for(int i=1;i<=100;i++) {
if(i%10==7||i/10%10==7||i%7==0){
System.out.print("过 ");
continue;
}
if(i%10==0) {
System.out.println(i);
continue;
}
System.out.print(i+" ");
}
}
运行结果如下:
求平方根
需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根。结果只保留整数部分,小数部分将被舍去。
代码如下:
public static void main(String[] args) {
// 求平方根
// 需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根。
// 结果只保留整数部分,小数部分将被舍去
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个整数:");
int number=sc.nextInt();
for(int i=1;i<=number;i++) {
if(i*i==number) {
System.out.println(i+"就是"+number+"的平方根");
break;
}else if (i*i>number) {
System.out.println((i-1)+"就是"+number+"平方根的整数部分");
break;
}
}
}
运行结果如下:
求质数
需求:键盘录入一个正整数x,判断该整数是否为一个质数。
代码如下:
public static void main(String[] args) {
// 需求:键盘录入一个正整数x,判断该整数是否为一个质数。
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int number = sc.nextInt();
// 定义一个变量,表示标记
// 标记着number是否为一个质数
// 表示最初就认为number是一个质数
boolean flag = true;
for (int i = 2; i < number; i++) {
if (number % i == 0) {
flag = false;
// System.out.println(number + "不是一个质数");
break;
}
}
// 只有当这个循环结束了,表示这个范围之内所有的数字都判断完毕了
// 此时才能断定number是一个质数
if(flag) {
System.out.println(number+"是一个质数");
}else{
System.out.println(number + "不是一个质数");
}
}
运行结果如下:
猜数字小游戏
需求:程序自动生成一个1-100之间的随机数字,使用程序实现猜出这个数字是多少?
代码如下:
//导包
import java.util.Random;
import java.util.Scanner;
public class LoopTest4 {
public static void main(String[] args) {
// 生成随机数
// 不能写在循环的里面
// 范围:1~100
// 秘诀:
// 用来生成任意数到任意数之间的随机数:7~15
// 1.让这个范围头尾都减去一个值,让这个范围从零开始:0~8
// 2.尾巴+1:8+1=9
// 3.最终的结果再加上第一步减去的值
Random r = new Random();
int number = r.nextInt(100) + 1;// 1~100
// 猜这个数字是多少
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入你要猜的数字:");
int guessNumber = sc.nextInt();
// 判断两个数字给出不同的提示
// 猜的数字大了,提示大了
// 猜的数字小了,提示小了
// 才的数字一样,提示猜中了
if (guessNumber > number) {
System.out.println("大了");
} else if (guessNumber < number) {
System.out.println("小了");
} else {
System.out.println("猜中了");
break;
}
}
}
}
运行结果如下: