首页 > 其他分享 >循环

循环

时间:2024-08-31 21:37:04浏览次数:4  
标签:int System while 循环 public out

Java 有三种循环:for,while,do while。

for

基本语法:

for (循环变量初始化; 循环条件; 循环变量迭代){
    循环语句;
}

程序示例:


public static void main(String[] args) {
    for (int i = 0, j = 0; i < 3; i++, j--) {
        System.out.println("Hello World");
    }
}

循环变量初始化可以定义多个变量,循环变量迭代可以有多个。

程序示例:

// 需求:从键盘录入两个数字,表示一个范围,统计这个范围中,既能被 3 整除,又能被 5 整除的数字有多少个?

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入第一个整数:");
        int num1 = sc.nextInt();
        System.out.print("请输入第二个整数:");
        int num2 = sc.nextInt();
        int min = num1 < num2 ? num1 : num2;
        int max = num1 > num2 ? num1 : num2;
        int count = 0;
        for (int i = min; i <= max; i++) {
            if (i % 3 == 0 && i % 5 == 0)
                ++count;
        }
        System.out.print("从" + min + "到" + max + "既能被3整除又能被5整除的数字有" + count + "个。");
    }
}

执行结果 1:

请输入第一个整数:1
请输入第二个整数:20
从1到20既能被3整除又能被5整除的数字有1个。

执行结果 2:

请输入第一个整数:20
请输入第二个整数:1
从1到20既能被3整除又能被5整除的数字有1个。

错误程序示例 1:

public class test6 {
    public static void main(String[] args) {
        int i = 9;
        for (int i = 0, j = 0; i < 3; i++, j--) { // 报错:Variable 'i' is already defined in the scope
            System.out.println("Hello World");
        }
    }
}

错误程序示例 2:

public class test6 {
    public static void main(String[] args) {
        for (int i = 0, j = 0; i < 3; i++, j--) {
            int i = 9;  // 报错:Variable 'i' is already defined in the scope
            System.out.println("Hello World");
        }
    }
}

错误程序示例 3:

public class test6 {
    public static void main(String[] args) {
        int i = 9;
        for (int a = 0, j = 0; a < 3; i++, j--) {
            int i = 9; // 报错:Variable 'i' is already defined in the scope
            System.out.println("Hello World");
        }
    }
}
//正确
public static void main(String[] args) {
    for (int i = 0, j = 0; i < 3; i++, j--) {
        System.out.println("Hello World");
    }
    for (int i = 0, j = 0; i < 3; i++, j--) {
        System.out.println("Hello World");
    }
}

主 scope 和子 scope 不能重复定义,两个子 scope 可重复定义。即定义域不能覆盖。

循环条件返回一个 boolean 值。

for 循环头的三个表达式都可以省略,但是分号不能省略,省略循环条件表示一直为真。

快速书写 for 循环的方法:

先输入 50.fori,然后回车:

自动生成了一个 for 循环,起始为 0,终止为 50,循环变量是自动的,且会保证不会发生作用域冲突:

while

基本语法:

循环变量初始化;
while (循环条件){
    循环体;
    循环变量迭代;
}

while 循环也有四个要素,只是放置的位置不一样。

练习:

// 需求:世界最高山峰是珠穆朗玛峰(8844.43米 = 8844430毫米),
// 假如我有一张足够大的纸,它的厚度是0.1毫米。
// 请问,我折叠多少次,可以折成珠穆朗玛峰的高度?

public static void main(String[] args) {
    int HEIGHT = 8844430;
    double init = 0.1;
    int count = 0;
    while (init <= HEIGHT) {
        init *= 2;
        ++count;
    }
    System.out.println(init);
    System.out.println(count);
}

执行结果:

1.34217728E7
27

练习:

// 回文数:
// 需求:给你一个整数x。
// 如果x是一个回文整数,打印true,否则,返回false。
// 解释:回文数是指正序(从左向右)和倒序(从右向左)读都是是一样的整数。
// 例如,121是回文,而123不是。

import java.util.Scanner;

public class whileTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个整数:");
        int n = sc.nextInt();
        int tmp = n;
        int num = 0;
        while (tmp != 0) {
            int get = tmp % 10;
            tmp /= 10;
            num = num * 10 + get;
        }
        System.out.println(n == num);
    }
}

执行结果:

请输入一个整数:121
true

练习:

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

import java.util.Scanner;

public class whileTest2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入被除数:");
        int dividend = sc.nextInt();
        System.out.print("请输入除数:");
        int divisor = sc.nextInt();
        int count = 0;
        while (dividend >= divisor) {
            dividend -= divisor;
            ++count;
        }
        System.out.println("商为" + count + ",余数为" + dividend);
    }
}

执行结果:

请输入被除数:13
请输入除数:3
商为4,余数为1

循环条件返回一个 boolean 值。

程序示例:

public class While {
    public static void main(String[] args) {
        int i = 0;
        while (i) {
            System.out.println("Hello");
        }
    }
}

报错: 不兼容的类型: int 无法转换为 boolean

for 和 while 的对比:

相同点:运行规则都是一样的。

区别:for 循环中,循环控制变量归属于 for 循环的语法结构中,在 for 循环结束后,就不能再次被访问了。while 循环中,循环控制变量不归属于 while,在 while 循环结束之后,该变量还可以继续使用。如果 for 循环的循环控制变量在 for 前面定义,而不是在 for 循环头中定义,则当 for 结束了该变量依旧可以使用。

能用 for 的地方一定能用 while 进行改写,能用 while 的地方一定能用 for 进行改写。

一般如果知道循环次数或者循环范围,就用 for,否则用 while。无限循环是不知道循环次数的,因此无限循环一般都使用 while。

do while

基本语法:

循环变量初始化;
do{
    循环体;
    循环变量迭代;
}while (循环条件);

do while 是关键字。

也有四要素,只是位置不一样。

循环条件返回一个 boolean 值。

标签:int,System,while,循环,public,out
From: https://www.cnblogs.com/Chengkai730/p/18390807

相关文章

  • c语言分支与循环详解
    使用if、switch实现分支结构,使用for、while、dowhile实现循环结构分支:1.1if语句的语法if(表达式) 语句;在c语言中0表示假,则语句不执行。非0表示真,语句执行1.2else与if对应,比如说一个数不是奇数就是偶数了if(表达式) 语句1;else 语句2;表达式成立则执行语句1,不成......
  • python 基础习题7--for循环练习
    1.编写一个程序,判断输入的一个数字是否为偶数。示例输入:3返回:yes示例输入:4返回:no2.编写一个程序,找出列表中的大于50的数,并输出该数及其在列表中的索引位置。该列表可以自己写,例如:[23,78,1,56,35,60,90]输出:7815636059063.编写一个程序,统计一个字符串中字母"a"出现的次数......
  • python并发与并行(十一) ———— 让asyncio的事件循环保持畅通,以便进一步提升程序的响
    前一篇blog说明了怎样把采用线程所实现的项目逐步迁移到asyncio方案上面。迁移后的run_tasks协程,可以将多份输入文件通过tail_async协程正确地合并成一份输出文件。importasyncio#OnWindows,aProactorEventLoopcan'tbecreatedwithin#threadsbecauseittriestoregi......
  • PHP循环
    循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。在PHP中,提供了下列循环语句:while-只要指定的条件成立,则循环执行代码块do...while-首先执行一次代码块,然后在指定的条件成立时重复这个循环for-循环执行代码块指定的次数foreach-根据数组中每个元素......
  • 04.循环语句 & 逻辑运算符
    4.循环语句and逻辑运算符4.1for循环for循环的基本结构为:两个分号是必不可少的,用while表示for可以写为:如果在for循环中,第一部分被省略,C++会假定判断条件始终为真,循环一直进行。程序经常在循环体中显示控制变量值或在计算中使用它,但这种使用不是必需的。控制变量通常用于......
  • 设计循环队列
    力扣(LeetCode)--设计循环队列1题目描述设计你的循环队列实现。循环队列是一种线性数据结构,其操作表现基于FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列......
  • 分享:JS事件循环机制,宏任务和微任务
     为什么会讲这个主题? 这要从一个bug讲起,10月26号,app端,我的考勤日历面板上的信息在ios上显示不全。效果见手机视频。 当时我们几个排查了2-3天都没找到原因,review代码各种改都不行。(此时打开代码看下,src/app/myAttendance/attendance.vueline298line246)最后通过setTimeo......
  • Shell循环语句:echo转义符和调试模式
    文章目录echo转义符常用转义字符常见的转义字符调试模式echo转义符常用转义字符在使用echo命令时,-n和-e是两个常用选项:echo-n:表示不换行输出。echo-e:启用转义字符,使得转义后的内容可以正确显示。常见的转义字符在echo-e中使用以下转义字符来控制......
  • Python中的“for循环”:探索其无限潜力
    引言for循环是任何Python程序员工具箱中的必备技能之一。无论是在处理数据时需要遍历数组,还是在编写Web应用时循环处理请求,亦或是进行复杂的算法实现,for循环都能派上大用场。通过掌握for循环的不同用法,我们可以更高效地解决问题,写出更加优雅且高效的代码。基础语法介绍核心概念......
  • Python中的`while`循环:探索无限可能
    引言while循环允许我们重复执行一段代码块,直到指定条件不再满足为止。这种机制非常适合处理那些不确定具体重复次数的任务场景,比如读取文件直到末尾、定时任务执行等。掌握好while循环,不仅能让你的代码更加高效、简洁,还能帮助你在面对复杂问题时找到更优的解决方案。基础语法介绍......