无限循环(循环一直停不下来) for (;;){ System.out.println("学习"); } while (true){ System.out.println("学习"); -------一般用while格式 } do { System.out.println("学习"); -------几乎不用 }while (true); 注意事项: 无限循环的下面不能再写其他的代码了,因为无限循环根本停不下来,那么下面的代码就执行不到了
public class Summary1 {
public static void main(String[] args) {
while (true){
System.out.println("给女神表白");
}
//System.out.println("女神答应我了!!");
}
}
跳转控制语句(在循环的过程中,跳转到其他的语句上执行) (在实际开发的过程中,很少真的让循环一直在运行,而是在合适的时候把循环给结束) continue : 跳过本次循环,继续执行下个 循环 break : 结束整个循环
//小老虎吃包子
public class Summary2 {
public static void main(String[] args) {
//1.跳过某次循环
for (int i = 1; i <= 5; i++) {
if (i == 3){
//结束本次循环,开始下次循环.
continue;
}
System.out.println("小老虎在吃第" + i + "个包子");
}
}
}
public class Summary3 {
public static void main(String[] args) {
//2.结束整个循环(小老虎吃了第三个包子就饱了)
for (int i = 1; i <= 5; i++) {
System.out.println("小老虎吃第" + i + "个包子");
if (i == 3){
//结束整个循环
break;
}
}
}
}
相关练习1
//逢7过
public class Summary3Test1 {
public static void main(String[] args) {
/*朋友聚会的时候可能会玩一个游戏,逢7过
游戏规则:从任意数字开始报数,当你要报的数字包含7或者是7的倍数时都要说:过
需求:使用程序在控制台打印出1-100之间满足逢7必过规则的数据
*/
//分析:
//个位7 十位7 7的倍数
//1 2 3 4 5 6 过 8 9 10 11 12 13 过 15 16...
//66 过 67 68 69 过 过 过 过... 80 ... 100
//1.得到1-100之间的每一个数字
//开始:1
//结束:100
for (int i = 1; i <= 100; i++) {
//2.判断每一个数字,如果符合规则,就打印过,如果不符合就打印真实的数字
if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0){
System.out.println("过");
continue;
}
System.out.println(i);
}
}
}
相关练习2
//求平方根
public class Summary3Test2 {
public static void main(String[] args) {
/*键盘录入一个大于等于2的整数x,计算并返回x的平方根,
结果只保留整数部分,小数部分将被舍去
*/
//分析:
//10
//1 * 1 < 10
//2 * 2 < 10
//3 * 3 < 10
//4 * 4 > 10
//推断: 10的平方根在3-4之间
//20
//1 * 1 < 20
//2 * 2 < 20
//3 * 3 < 20
//4 * 4 < 20
//5 * 5 > 20
//推断: 20的平方根在4-5之间
//在代码当中
//从1开始循环,拿着数字的平方跟原来的数字进行比较
//如果小于,那么继续往后判断
//如果等于,当前数字就是平方根
//如果大于,那么前一个数字就是平方根的整数部分
//1.键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于等于2的整数x:");
int number = sc.nextInt();
//2.从一开始判断
//开始:1
//结束:number
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;
}
}
}
}
//因为if在循环里面
相关练习3
public class Summary3Test3 {
public static void main(String[] args) {
//需求:键盘录入一个正整数x,判断该整数是否为一个质数.
//质数:如果一个数只能被1和本身整除,那么这个数就是质数,否则这个数就是合数
//7 = 7 * 1 质数
//8 = 8 * 1 8 = 4 * 2 合数
Scanner sc = new Scanner(System.in);
System.out.println("键盘录入一个正整数x:");
int number = sc.nextInt();
//定义一个变量,表示标记
//记录number是否为一个质数
//true : 是一个质数
//false : 不是一个质数
//表示最初就认为number是一个质数
boolean flag = true;
//判断
//写一个循环,从2开始判断,一直判断到number-1为止
//看这个范围之内,有没有数字可以把number整除
for (int i = 2;i <= (number - 1);i++){
// i 一次表示为这个范围内的每一个数字
//看number是否能被i整除就可以了
if (number % i == 0){ //9 % 2 = 1
flag = false;
//System.out.println(number + "不是一个质数");
break;
}/*else {
System.out.println(number + "是一个质数");
}*/
}
//只有当这个循环结束了,表示这个范围内所有的数字都判断完毕了
//此时才能判定number是一个质数
if (flag){
System.out.println(number + "是一个质数");
}else{
System.out.println(number + "不是一个质数");
}
}
}
相关练习4
public class Summary3Test4 {
public static void main(String[] args) {
//100000
//2-99999
//循环的次数将近10万次
//推荐一个简化的思路
//81
//1 * 81
//3 * 27
//9 * 9
//以81的平方根9为中心
//而且假设a * b = 81
//那么a和b中,其中有一个必定是小于等于9的
//另一个大于等于9的.
//假设,都大于9 --- 9.1 * 9.1 >81
//假设,都小于9 --- 8.9 * 8.9 <81
//其中一个数字一定是小于等于平方根
//另外一个数字一定是大于等于平方根
int number = 100;
//如果这个范围内,所有的数字都不能把number整除
//那么number就一定是一个质数
/*for (int i = 2;i <= number的平方根;i++){
}*/
}
}
获取随机数: java帮我们写好了一个类叫Random,这个类就可以随机生成一个数 使用步骤: 1.导包 --- Random这个类在哪 import java.util.Random; 2.创建对象 --- 表示我要开始用Random这个类了 Random r = new Random(); 上面的这个格式里,只有r是变量名,可以变,其他的都不可以变 3.生成随机数字 --- 真正开始干活了 int number = r.nextInt(随机数的范围); 上面的这个格式里,只有number是变量名,可以变,其他的都不可以变
//1.导包
import java.util.Random;
public class Summary4 {
public static void main(String[] args) {
//先获取一个随机数
// 范围: 0~10
//2.创建对象
Random r = new Random();
//3.生成随机数字
//判断技巧
//在小括号中,书写的是生成随机数字的范围
//这个范围一定是从0开始的
//到这个数-1结束
//口诀:包头不包尾,包左不包右
for (int i = 1; i <= 100; i++) {
int number = r.nextInt(10);//0~9
System.out.println(number);
}
}
}
public class Summary5 {
public static void main(String[] args) {
//秘诀:
//用来生成任意数代任意数之间的随机数 7~15
//1.让这个范围头尾都减去一个值,让这个范围从0开始 -7 0~8
//2.尾巴加1 8+1=9
//3.最终的结果,再加上第一步减去的值
/* Random r = new Random();
int number = r.nextInt(9) + 7;//7 ~ 15
//0 ~ 8 + 7
System.out.println(number);*/
//需求
//随机数范围: 1 ~ 100
Random r = new Random();
int number = r.nextInt(100) + 1;//1 ~ 100
System.out.println(number);
}
}
相关练习5
import java.util.Random;
import java.util.Scanner;
public class Summary5Test1 {
public static void main(String[] args) {
//需求:程序自动生成一个1~100之间的随机数,使用程序实现猜出这个数字是多少
//扩展小需求:加一个保底机制,三次猜不中,直接提示猜中了
//注意点:生成随机数的代码int number = r.nextInt(100) + 1;
// 不能写在里面,否则每一次都会产生一个新的随机数
//统计器
//用来统计当前猜了多少次
//1.随机生成一个1~100之间的数字
int count = 0;
Random r = new Random();
int number = r.nextInt(100) + 1;
//2.猜这个数字是多少
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("请说出你要猜的数字:");
int guessNumber = sc.nextInt(); //键盘录入的原因,键盘录入后循环
count++;
if (count == 3){
System.out.println("猜对了");
break;
}
//3.判断两个数字给出不同的提升
//猜的数字大了 提示 大了
//猜的数字小了 提示 小了
//猜的数字一样 提示 猜中了
if (guessNumber > number){
System.out.println("大了");
}else if (guessNumber < number){
System.out.println("小了");
}else{
System.out.println("猜对了");
break;
}
}
}
}