循环结构(含练习题)

这篇具有很好参考价值的文章主要介绍了循环结构(含练习题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当循环次数或范围确定时,多用for循环,反之多用while循环

循环结构一般由四部分组成:

  • 初始化语句,在循环开始最初执行,并且只执行一次
  • 条件判断、步进语句、循环体

for & foreach

循环结构(含练习题),Java语言基础,开发语言,java
for循环,循环体可以执行零次或多次

每执行一次循环体,就会执行一次步进语句

		int i;
        for (i = 0; i < 5; i++) {
            continue; // 跳出当前次循环
			// System.out.println(i); // 标红报错 Unreachable statement 不能执行到的语句
        }
        System.out.println(i); // 5 

foreach循环,JDK 5 新特性,遍历数组和集合,底层是迭代器

for(声明循环变量:数组名字){ },不可以使用已经声明过的变量

        int one[] = {1, 2, 50, 61};
        for (int i : one) {
            System.out.println(i);
        }
        // int j = 0;
        // for ( j : one) { } // 标红报错 Not a statement

   		int two[][] = {{1}, {1, 2}, {1, 2, 3}};
        for (int i = 0; i < two.length; i++) { // 传统方式遍历二维数组
            for (int j = 0; j < two[i].length; j++) {
                System.out.println(two[i][j]);
            }
        }
        System.out.println("==========");
        for (int[] ints : two) { // 改进方式遍历二维数组
            for (int anInt : ints) {
                System.out.println(anInt);
            }
        }

遍历数组,foreach循环比for循环更加快捷

for循环可以修改数组元素,foreach循环不能修改数组元素

  		int[] arr = {1, 2, 3};
        for (int i : arr) {
            i += 1;
        }
        System.out.println(Arrays.toString(arr)); // [1, 2, 3]
        for (int i = 0; i < arr.length; i++) {
            arr[i] += 1;
        }
        System.out.println(Arrays.toString(arr)); // [2, 3, 4]

一、求1-100之间偶数的和

 		int sum = 0;
        for (int i = 1; i <= 100; i1++) {
            if (i1 % 2 == 0) {
                sum += i;
            }
        }		
	 	// for (int i = 2; i <= 100; i += 2) { // 步进语句,每次加二
        //     sum += i;
        // }
		System.out.println("1-100之间偶数的和:" + sum); // 2550

二、求1-100之间素数的和

 		int sum = 0; 
        for (int i = 1; i <= 100; i++) { // 目标数
            int j;
            for (j = 2; j < i; j++) { // 素数只能被1和本身整除,在2~(i-1)范围内遍历
                if (i % j == 0) {
                    break;
                }
            }
            if (i == 1 || j < i) { //  最小的素数是2,排除目标数1;j<i不是素数,继续下一个目标数
                continue;
            }
            sum += i;
        }
        System.out.println(sum); // 1060

三、求6+66+666…的前12项和

 		int sum = 0;
        int item = 6;
        for (int i = 1; i <= 2; i++) { // 检验循环,缩小次数
            sum += item;
            item = item * 10 + item; // 修改中间量
        }
        System.out.println(sum); // 72

四、求1-1000之内的所有完数

一个数恰好等于它的因子之和,这个数称为完数

  		for (int i = 1; i <= 1000; i++) { // 目标数
            int sum = 0;
            for (int j = 1; j < i; j++) { // 因子,不包含本身
                if (i % j == 0) {
                    sum += j;
                }
            }
            if (i == sum) {
                System.out.println(i); // 6 28 496
            }
        }

五、打印一天之内的几点几分

		// 嵌套循环
		for (int i = 0; i < 24; i++) { // 24小时
    		for (int j = 0; j < 60; j++) { // 60分钟
       		System.out.println(i + "点" + j + "分"); // 24*60=1440行
    		}
		}

while & do-while

while循环,循环体可以执行零次或多次

do-while循环,循环体至少执行一次,不要漏掉末尾的分号!!

		int i = 1; // 初始化语句
		do {
    		System.out.println("hello world " + i); // 循环体
    		i++; // 步进语句
		} while (i < 0); // 条件判断

一、求1!+1/2!+1/3!+…的前12项和

        double sum = 0; // double类型
        double item = 1;
        int index = 1, end = 2; // 检验循环,缩小次数
        while (index <= end) {
            sum += item;
            index++;
            item = item * 1.0 / index; // 修改中间量
        }
        System.out.println(sum); // 1.5

二、求1!+2!+3!+4!+…的前12项和

        int sum = 0;
        int item = 1;
        int index = 1, end = 3; // 检验循环,缩小次数
        while (index <= end) {
            sum += item;
            index++;
            item = item * index; // 修改中间量
        }
        System.out.println(sum); // 1 + 2 + 6 = 9 

三、求满足1+2+3+…+n<8888的最大正整数n文章来源地址https://www.toymoban.com/news/detail-827810.html

//              0<8888  +1<8888  +2   +3   +4 
//        sum:    +1      +2     +3   +4
//        item:    2      3      4    5
		int sum = 0;
        int item = 1;
        while (sum < 8888) { // 数字10验证过程如上,最终需要item-2才正确
            sum += item;
            item = item + 1;
        }
        System.out.println(item - 2); // 132

到了这里,关于循环结构(含练习题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java选择结构作业练习题

    1.从键盘输入3个数,求最大值 请输入3个数: 5 2 11   你好,最大数是11 我想买车,买什么车决定于我在银行有多少存款: 如果我的存款超过500万,我就买卡迪拉克 否则,如果我的存款超过100万,我就买帕萨特 否则, 如果我的存款超过50万,我就买依兰特 否则, 如果我的存

    2024年02月02日
    浏览(64)
  • 斐波那契数列、青蛙跳台阶、汉诺塔(C语言Java通用)、递归练习题

    Write once,Runanywhere. 🔥🔥🔥 本派文章详细斐波那契数列、青蛙跳台阶、汉诺塔(C语言Java通用)、递归练习题。 💥 💥 💥 如果你觉得我的文章有帮助到你,还请【关注➕点赞➕收藏】,得到你们支持就是我最大的动力!!! 💥 💥 💥 ⚡ 版权声明:本文由【马上回来了】原创、

    2023年04月08日
    浏览(67)
  • 数据结构——二叉树练习题

    目录 单值二叉树  相同的树  另一棵树的子树 二叉树的前序遍历  二叉树的构造及遍历 给大家推荐一款刷题,找工作的好网站——牛客网 牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网   思路:根节点跟左子树比较,若相等则继续比,一

    2024年02月11日
    浏览(40)
  • 【数据结构】“单链表”的练习题

    💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃 个人主页 :阿然成长日记 👈点击可跳转 📆 个人专栏: 🔹数据结构与算法🔹C语言进阶 🚩 不能则学,不知则问,耻于问人,决无长进 🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍 题目要求: 给你单链

    2024年02月14日
    浏览(37)
  • C 语言练习题更新

    目录(先不要看答案,首先自己做才能更好的领悟,做不来没关系) 题目一:有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是 1、2、3、4,组成所有的排列后再去掉不满足条件的排列。 题目

    2024年02月14日
    浏览(45)
  • C语言之练习题

    欢迎来到我的: 世界 希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 这期文章由:两题问答题+四道编程题;小孩在文章中写有详细解题思路,感谢大家支持支持。 思路: 首先我们要知道 x=x(x-1) 的含义; 假设x=3;也就是 011 ; 而x-1=2;是 010 ;

    2024年02月10日
    浏览(58)
  • 【数据结构】第二章课后练习题——线性结构

    1、线性表是 一个有限序列,可以为空 2、链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用 单循环链表 存储方式最节省运算时间 3、若某线性表中最常用的操作实在最后一个元素之后插入一个元素和删除第一个元素,则采用 仅有尾结点的

    2024年02月07日
    浏览(59)
  • 习题练习 C语言(暑期)

    今天为大家分享我暑假期间所练习的一些小题目! 相信大家看完之后都会有所提升的! 加油! 以下不正确的定义语句是( ) A: double x[5] = {2.0, 4.0, 6.0, 8.0, 10.0}; B: char c2[] = {‘x10’, ‘xa’, ‘8’}; C: char c1[] = {‘1’,‘2’,‘3’,‘4’,‘5’}; D: int y[5+3]={0, 1, 3, 5, 7, 9}; 题目解

    2024年02月10日
    浏览(54)
  • 习题练习 C语言

    首先我们要了解什么是offsetof宏: . 此具有函数形式的宏返回数据结构或联合类型中成员成员的偏移值(以字节为单位)。 . 返回的值是size_t类型的无符号整数值,其字节数位于指定成员与其结构开头之间。 什么意思呢,可以看到下面这张图片: 下面我们来看到这一习题:

    2024年02月14日
    浏览(50)
  • C语言习题练习

    首先我们要了解什么是offsetof宏: . 此具有函数形式的宏返回数据结构或联合类型中成员成员的偏移值(以字节为单位)。 . 返回的值是size_t类型的无符号整数值,其字节数位于指定成员与其结构开头之间。 什么意思呢,可以看到下面这张图片: 下面我们来看到这一习题:

    2024年02月15日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包