Java基础-循环练习题

循环判断-算法题

案例1:回文数

要求:给你一个整数x。如果是一个回文数,打印true,否则,返回false。

//1.定义数字
int x = 121;
int num = 0;
//定义以一个临时变量用于记录x原来的值,用于最后的比较
int temo = x;
//2.利用循环开始从右往左获取每一位数字
while(x != 0){
    //从右往左获取数字
    int ge = x % 10;
    //修改一下x记录的值
    x = x / 10;
    //把获取的数字拼接到最右边
    num = num * 10 + ge;
}
//3.打印
System.out.println(num);
//4.比较
System.out.println(temp == num);

案例2:求商和余数

需求:给定两个整数,被除数和除数( 都是正数,且不超过int的范围)。将两数相除,要求不使用除法,和%运算符。得到商和余数。

int a = 10;
int b = 3;
int count = 0;
whlie(a>=b){
    a = a-b;
    count++;
}
System.out.println("余数为:"+a);
System.out.println("商为:"+count);

循环高级综合练习

无限循环

当知道循环的范围或者循环的次数的时候用for循环,反之用while循环,dowhlie循环不常用

for(;;){
    System.out.println("学习");
}


while(){
    System.out.println("学习");
}


do{
    System.out.println("学习");
}while(true);

注:无限循环下面不能有其他代码。

跳转控制语句

continue:结束本次循环,继续下次循环。

break:结束整个循环。

案例1

需求:小老虎吃包子,第三个包子有虫子,跳过。

//1.跳过某一次循环
for (int i = 1; i <= 5; i++){
    if(i == 3){
        //结束本次循环,继续下次循环。
        continue;
    }
    System.out.println("小老虎在吃第"+i+"个包子");
}

案例2

需求:小老虎吃包子,第三个包子饱了。

//2.结束整个循环
for (int i = 1; i <= 5; i++){
    System.out.println("小老虎在吃第"+i+"个包子");
    if(i == 3){
        //结束整个循环。
        break;
    }
}

逢7过

需求:使用程序在控制台打印出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);

求平方根

需求:键盘录入一个大于等于2的整数x,计算并返回x的平方根。结果只保留整数部分,小数部分将被舍去。

    在代码中,从1开始循环,拿着数字的平方根跟原来的数字进行比较

    如果小于的,继续往后判断

    如果相等,那么当前的数字就是平方根

    如果大于的,那么前一个数字就是平方根

//键盘录入一个整数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
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;
	}
}

求质数

需求:键盘上录入一个正整数x,判断该整数是否为一个质数

//质数:如果一个数只能被1和本身整除,那么这个数就是质数
Scanner sc =new Scanner(System.in);
System.out.println("请输入一个整数");
int number = sc.nextInt();
//定义一个变量,表示标记
//标记着number是否为一个质数
//true:是一个质数
//false:不是一个质数
//表示最初就认为number是一个质数
boolean flag = true;
for(int i = 2;i<number;i++){
	if(number % i == 0){
		flag = false;
		break;
	}
}
if(flag){
	System.out.println(number + "是一个质数");
	}else{
	System.out.println(number + "不是一个质数");
}

  优化:number的平方根,如果这个范围之内,所有的数字都不能被number整除,那么number就一定是一个质数。

猜数字小游戏

需求:程序自动生成一个1-100之间的随机数字,实用程序实现猜出这个数字是多少?

//1.生成一个1~100之间的随机数字
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();
//3.判断两个数字给出不同提示
		if(guessNumber > number){
			System.out.println("大了");
		}else if(guessNumber < number){
			System.out.println("小了");
		}else{
			System.out.println("猜中");
		}
	}
		
}

获取随机数

  java中的Random类,可以生成一个随机数

使用步骤:1.导包

                    import java.util.Random;

                   2.创建对象

                    Random r = new Random();

                   3.生成随机数

                    int number = r.nextInt(随机数范围);

注:范围从0开始,到这个数-1结束

Random r = new Random();
for(int i = 0;i < 100;i++){
	int number = r.nextInt(10);
	System.out.println(number);
}

生成任意数到任意数之间的随机数:

1.让这个范围头尾都减去一个值,让这个范围从0开始

2.尾巴+1

3.最终的结果,在加上第一步减去的值

Random r = new Random();
int number = r.nextInt(100) + 1;//1 ~ 100
System.out.println(number);

扩展:抽奖机制,用点卷去抽水晶,保底360次

//		计数器:用来统计当前已经猜了多少次
		int count = 0;
//1.生成一个1~100之间的随机数字
		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();
//3.判断两个数字给出不同提示
		count++;
		if(count == 3){
			System.out.println("猜中了");
			break;
		}
		if(guessNumber > number){
			System.out.println("大了");
		}else if(guessNumber < number){
			System.out.println("小了");
		}else{
			System.out.println("猜中了");
		}
	}

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值