共计 3715 个字符,预计需要花费 10 分钟才能阅读完成。
1. 有限循环
概念:
又叫死循环。循环始终停不下来。
for 格局:
for(;;){System.out.println("循环执行始终在打印内容");
}
解释:
初始化语句能够空着不写,示意循环之前不定义任何的控制变量。
条件判断语句能够空着不写,如果不写,默认示意 true,循环始终进行。
条件管制语句能够空着不写,示意每次循环体执行结束后,控制变量不做任何变动。
while 格局:
while(true){System.out.println("循环执行始终在打印内容");
}
解释:
小括号外面就不能省略了,true 肯定要写进去,否则代码会报错。
do…while 格局:
do{System.out.println("循环执行始终在打印内容");
}while(true);
解释:
小括号外面就不能省略了,true 肯定要写进去,否则代码会报错。
有限循环的注意事项:
- 最为罕用的格局:while
- 有限循环上面不能再写其余代码了,因为永远执行不到。
2. 条件管制语句
- break
- continue
break:
不能独自存在的。能够用在 switch 和循环中,示意完结,跳出的意思。
代码示例:
//1. 吃 1~5 号包子
for (int i = 1; i <= 5; i++) {System.out.println("在吃第" + i + "个包子");
//2. 吃完第三个的时候就不吃了
if(i == 3){break;// 完结整个循环。}
}
continue:
不能独自存在的。只能存在于循环当中。
示意:跳过本次循环,继续执行下次循环。
代码示例:
//1. 吃 1~5 号包子
for (int i = 1; i <= 5; i++) {
//2. 第 3 个包子有虫子就跳过,持续吃上面的包子
if(i == 3){
// 跳过本次循环(本次循环中,上面的代码就不执行了),继续执行下次循环。continue;
}
System.out.println("在吃第" + i + "个包子");
}
3. Random
Random 跟 Scanner 一样,也是 Java 提前写好的类,咱们不须要关怀是如何实现的,只有间接应用就能够了。
应用步骤:
- 导包
import java.util.Random;
导包的动作必须呈现在类定义的上边。
- 创建对象
Random r = new Random ();
下面这个格局外面,只有 r 是变量名,能够变,其余的都不容许变。
- 生成随机数
int number = r.nextInt(随机数的范畴);
下面这个格局外面,只有 number 是变量名,能够变,其余的都不容许变。随机数范畴的特点:从 0 开始,不蕴含指定值。比方:参数为 10,生成的范畴 [0,10)
代码示例:
//1. 导包
import java.util.Random;
public class RandomDemo1 {public static void main(String[] args) {
//2. 创建对象
Random r = new Random();
//3. 生成随机数
int number = r.nextInt(100);// 包左不包右,包头不包尾
//0 ~ 99
System.out.println(number);
}
}
4. 逢七过
需要:
敌人团聚的时候可能会玩一个游戏:逢 7 过
游戏规则:从任意一个数字开始报数,当你要报的数字是蕴含 7 或者是 7 的倍数时都要说过:过
应用程序在控制台打印出 1 -100 之间的满足逢七必过规定的数据
举例:
1 2 3 4 5 6 过 8 9 10 11 12 13 过 15 16 过 18 …
代码示例:
/* 敌人团聚的时候可能会玩一个游戏:逢 7 过
游戏规则:从任意一个数字开始报数,当你要报的数字是蕴含 7 或者是 7 的倍数时都要说过:过
需要:应用程序在控制台打印出 1 -100 之间的满足逢七必过规定的数据 */
// 剖析:// 个位 7 十位 7 7 倍数
//1 2 3 4 5 6 过 8 9 10 11 12 13 过 15 16 过 18 19 20 过....
//69 过 过 过 过 过 过... 80
//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);
}
5. 平方根
需要:
键盘录入一个大于等于 2 的整数 x,计算并返回 x 的 平方根。后果只保留整数局部,小数局部将被舍去。
代码示例:
/* 需要:键盘录入一个大于等于 2 的整数 x,计算并返回 x 的 平方根。后果只保留整数局部,小数局部将被舍去。*/
// 剖析:// 平方根 16 的平方根 4
// 4 的平方根 2
// 10
// 1 * 1 = 1 < 10
// 2 * 2 = 4 < 10
// 3 * 3 = 9 < 10
// 4 * 4 = 16 > 10
// 推断:10 的平方根是在 3~4 之间。// 20
// 1 * 1 = 1 < 20
// 2 * 2 = 4 < 20
// 3 * 3 = 9 < 20
// 4 * 4 = 16 < 20
// 5 * 5 = 25 > 20
// 推断:20 的平方根是在 4~5 之间。// 在代码当中
// 从 1 开始循环,拿着数字的平方跟原来的数字进行比拟
// 如果小于的,那么持续往后判断
// 如果相等,那么以后数字就是平方根
// 如果大于的,那么前一个数字就是平方跟的整数局部
//1. 键盘录入一个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输出一个整数");
int number = sc.nextInt();
//2. 从 1 开始循环判断
// 开始: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;
}
}
6. 判断是否为质数
需要:
键盘录入一个正整数 x,判断该整数是否为一个质数。
代码示例:
// 需要:键盘录入一个正整数 x,判断该整数是否为一个质数。// 质数:// 如果一个整数只能被 1 和自身整除,那么这个数就是质数。否则这个数叫做合数
//7 = 1 * 7 质数
//8 = 1 * 8 2 * 4 合数
// 剖析://1. 键盘录入一个正整数
//number
Scanner sc = new Scanner(System.in);
System.out.println("请输出一个正整数");
int number = sc.nextInt();//9
// 定义一个变量,示意标记
// 标记着 number 是否为一个质数
//true:是一个质数
//false : 不是一个质数
// 示意最后就认为 number 是一个质数
boolean flag = true;
//2. 判断
// 写一个循环,从 2 开始判断,始终判断到 number- 1 为止
// 看这个范畴之内,有没有数字能够被 number 整除
for (int i = 2; i < number; 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 + "不是一个质数");
}
7. 猜数字小游戏
需要:
程序主动生成一个 1 -100 之间的随机数,在代码中应用键盘录入去猜出这个数字是多少?
要求:
应用循环猜,始终猜中为止。
思路剖析:
- 生成一个 1 -100 之间的随机数
- 应用键盘录入去猜出这个数字是多少
- 把重复猜的代码写在循环中
代码示例:
//1. 生成一个 1 -100 之间的随机数
Random r = new Random();
int number = r.nextInt(100) + 1;// 0 ~ 99 + 1 --- 1 ~ 100
System.out.println(number);
//2. 应用键盘录入去猜出这个数字是多少?Scanner sc = new Scanner(System.in);
while(true){System.out.println("请输出一个整数");
int guessNumber = sc.nextInt();
//3. 比拟
if(guessNumber > number){System.out.println("您猜的数字大了");
}else if(guessNumber < number){System.out.println("您猜的数字小了");
}else{System.out.println("祝贺你,猜中了");
break;
}
}