首页 > 其他分享 >循环高级

循环高级

时间:2024-08-20 11:27:31浏览次数:5  
标签:number 质数 System 高级 循环 println out

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提前写好的类,我们不需要关心是如何实现的,只要直接使用就可以了。

使用步骤:

  1. 导包
import java.util.Random;
导包的动作必须出现在类定义的上边。
  1. 创建对象
Random r = new Random ();
上面这个格式里面,只有r是变量名,可以变,其他的都不允许变。
  1. 生成随机数
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. 生成一个1-100之间的随机数
  2. 使用键盘录入去猜出这个数字是多少
  3. 把反复猜的代码写在循环中

代码示例:

package com.java_studying.Test;
import java.util.Random;
import java.util.Scanner;
public class Test5 {
    public static void main(String[] args) {
        //猜数字小游戏
        /*
        1. 生成一个1-100之间的随机数
        2. 使用键盘录入去猜出这个数字是多少
        3. 把反复猜的代码写在循环中
        */
        Random rand=new Random();
        //生成一个1-100之间的随机数
        int rand_num=rand.nextInt(101);
        System.out.println(rand_num);
        //定义猜测的次数
        int judge_counter=0;
        for (;;){
            //输入你要猜的数字
            System.out.println("输入你要猜的数字(1-100):");
            Scanner sc=new Scanner(System.in);
            int choice_num=sc.nextInt();
            judge_counter+=1;
            System.out.println("第"+judge_counter+'次');
            if (choice_num==rand_num){
                System.out.println("恭喜你猜对了");
                break;


            }
            else if (choice_num<rand_num){
                System.out.println("猜小了");
            }
            else if (choice_num>rand_num){
                System.out.println("猜大了");
            }
        }
        System.out.println("一共猜了"+judge_counter+"才猜对了");
    }
}

标签:number,质数,System,高级,循环,println,out
From: https://www.cnblogs.com/positive-boy/p/18369128

相关文章

  • OSPF的优化及高级特性
    文章目录一、LSA类型1.LSA12.LSA23.LSA34.LSA45.LSA56.LSA7二、OSPF优化1、解决区域不连续问题①虚链路②gre隧道(gretunnel)2、防环机制①区域内②区域间3、FA地址/转发地址三、OSPF高级特性1、OSPF报文认证①明文认证②MD5认证③Keychain认证④HMAC-SHA256......
  • 分支与循环(上)
    C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。我们可以使⽤if、switch实现分⽀结构,使用 for、while、dowhile实现循......
  • 新手准专科大一学习c语言的第3天之while,do while,for循环
    往事第一次写博客也不知道些什么只好写一些自己的学习经历        前面两天花了点时间了解了一些变量、操作符、语句啊什么的就没什么好记录的了        我是在家自学c语言的今年准大一新生说是准大一新生其实我上的是大专还希望大家轻点笑 因为初中不......
  • 用for循环输出数组与初识增强for循环
    1.定义一个数组2.使用for循环设置编码3.输出带有编码的数组使用增强for循环输出数组1.依旧是定义数组2.设置一个新的变量x用于替代数组3.直接输出变量x即可......
  • 【unix高级编程系列】信号
    引言以前对信号的理解,仅仅停留在main函数入口注册几个异常信号(SIGPIPE、SIGSEGV、SIGFPE)处理函数。当捕获到异常时,将进程的堆栈进行打印,方便排查、定位问题。这一类问题我认为是利用linux系统的异常信号机制,提高开发效率;后续随着工作经验的增长,linux的信号,还可以有其它用......
  • 【前端】使用Promise达到循环调用接口的效果
    Promise.all()要使用Promise.all调用同一个异步方法多次并将所有结果收集起来,你可以创建一个包含该方法调用的Promise数组,然后将这个数组传递给Promise.all。示例:假设你有一个异步方法fetchData(id),你想针对一组ID调用它并等待所有结果。asyncfunctionfetchData(id){......
  • C语言--循环链表
    循环链表实现循环链表的最后一个节点指向头节点,形成一个环。#include<stdio.h>#include<stdlib.h>typedefstructNode{  intdata;  structNode*next;//指向下一个节点}Node;typedefstruct{  Node*head;//头指针}CircularLinkedList;......
  • Containerd高级命令行工具nerdctl安装及使用
      ################crictl####################crictl安装k8s即有,ctr是containerd的一个客户端工具,ctr-v输出的是containerd的版本[root@m1~]#crictl-vcrictlversionv1.30.1[root@m1~]#[root@m1~]#crictlimagesIMAGE......
  • Elsa V3学习之循环节点
    上篇我们学习了分支节点,这篇文章我们来学习循环节点。Forfor节点跟我们代码中的for循环是一样的效果,有三个参数。Start,End,Step。分别表示起始数字,终点数字,以及步长,即每次循环加几的意思。下面的配置相当于for(i=0,i<=10,i++)。for节点的output表示当前的循环的值,我们可以......
  • web前端之根据字符串长度从长到短排序、中文字符串优先、样式循环、禁止冒泡、悬浮、
    MENU前言效果图htmlstyleJavaScript前言1、代码段由HTML、CSS(使用Sass语法)和JavaScript组成,创建一个文本框,用户可以在其中输入内容,并通过点击按钮进行操作。2、代码段的主要功能是允许用户输入一系列以、分隔的项,并根据长度对这些项进行排序(中文字符优先),然后......