DAY09
DAY09
一 无限循环
又叫死循环。循环一直停不下来。
1.for格式:
for(;;){
System.out.println("循环执行一直在打印内容");
}
初始化语句可以空着不写,表示循环之前不定义任何的控制变量。
条件判断语句可以空着不写,如果不写,默认表示true,循环一直进行。
条件控制语句可以空着不写,表示每次循环体执行完毕后,控制变量不做任何变化。
2.while格式:
while(true){
System.out.println("循环执行一直在打印内容");
}
小括号里面就不能省略了,true一定要写出来,否则代码会报错。
3.do...while格式:
do{
System.out.println("循环执行一直在打印内容");
}while(true);
小括号里面就不能省略了,true一定要写出来,否则代码会报错。
无限循环的注意事项:
- 最为常用的格式:while
- 无限循环下面不能再写其他代码了,因为永远执行不到。
二 跳转控制语句
1.continue :跳过本次循环,继续执行下次循环
public class Test01{
public static void main(String[] args){
for (int i = 1;i<=5;i++){
if(i==3){
continue;//跳过本次循环(本次循环中,下面的代码就不执行了),继续执行下次循环。
}
System.out.println("小老虎正在吃" + i + "个包子");
}
}
}
2.break :结束整个循环
public class Test02 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("小老虎正在吃" + i + "个包子");
if (i == 3) {
break;//结束整个循环
}
}
}
}
三 练习
1.逢七过
//朋友聚会的时候可能会玩一个游戏:逢7过
//游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说过:过
//使用程序在控制台打印出1-100之间的满足逢七必过规则的数据
import java.util.Scanner;
public class Test03{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数");
int i = sc.nextInt();
for (int n = 1; n <=i;n++){
if (n%7 ==0 ||n%10 ==7||n/10 ==7){
continue;
}
System.out.println(n);
}
}
}
2.求平方根
//键盘录入一个大于等于2的整数 x ,计算并返回 x 的 平方根 。结果只保留整数部分 ,小数部分将被舍去 。//
import java.util.Scanner;
public class Test04{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于等于2的整数");
int i = sc.nextInt();
for ( int n = 1; n<=i;n++ ){
if (n*n >= i){
System.out.println(n-1);
break;
}
}
}
}
3.求质数
import java.util.Scanner;
public class Test05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
int i = sc.nextInt();
//定义一个标记变量,表示标记
//标志着number是否为一个质数
//true:表示是质数
//false:表示不是质数
//表示最初认为i 是一个质数
boolean flag = true;
for (int n = 2; n <= i - 1; n++) {
if (i % n == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println("是质数");
} else {
System.out.println("不是质数");
}
}
}
4.猜数字小游戏
java已经帮我们写好一个类叫Dandom,这个类就可以生成一个随机数
//程序自动生成一个1-100之间的随机数,在代码中使用键盘录入去猜出这个数字是多少?
import java.util.Scanner;
import java.util.Random;
public class Test06{
public static void main(String[] args){
Random r = new Random();
Scanner sc = new Scanner(System.in);
int count = 0;
System.out.println("请输入你猜的数字(1-100),你有3次机会");
/*生成随机数:
在小括号中,书写的事生成随机数的范围,
这范围一定是从0开始的
到这个数减一结束
口诀:包头不包尾,包左不包右*/
int number = r.nextInt(100) + 1;//生成1-100的随机数
int guessnumber;
for(;;) {
guessnumber = sc.nextInt();
count++;
// 检查是否用完了3次机会
if (count == 3) {
if (guessnumber == number) {
System.out.println("恭喜你猜对了!");
} else {
System.out.println("很遗憾,3次机会已用完!正确答案是:" + number);
}
break;
}
// 判断猜的数字大小
if(guessnumber < number){
System.out.println("猜小了");
} else if (guessnumber > number){
System.out.println("猜大了");
} else if (guessnumber == number){
System.out.println("恭喜你猜对了!你用了" + count + "次机会");
break;
}
// 提示用户再次输入(还有机会时)
System.out.println("请再次输入你猜的数字,你还有" + (3 - count) + "次机会");
}
}
}
将guessnumber变量声明移到do-while循环外部,确保while条件能够访问到这个变量

浙公网安备 33010602011771号