知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

Java多种循环语句(for、while...)详细解析与应用

发表时间:2022-03-25来源:网络

循环语句概述

反复执行的代码片段,本质就对重复代码的一种简化解决方案。

循环语句四要素

1.初始化语句
2.循环条件语句
3.循环体语句
4.控制条件语句

循环分类

1.while循环语句
   格式:
   1.初始化语句;
   while(2.循环条件语句) {
    3.循环体语句;
    4.控制条件语句
   }

2.for循环语句
   格式:
   for(1.初始化语句; 2.循环条件语句; 4.控制条件语句) {
    3.循环体语句;
   }

3.do-while循环
   格式:
   1.初始化语句;
   do {
    3.循环体语句;
    4.控制条件语句
   } while(2.循环条件语句);

4.嵌套循环语句: 前三者语句结合使用

for循环

格式

      for(1.初始化语句; 2.循环条件语句; 4.控制条件语句) {
   3.循环体语句;
      }
执行流程

执行步骤

1.首先执行初始化语句
2.执行循环条件语句,判断条件是否成立
   成立
      执行循环体语句
      执行控制条件语句
      回到第二步
   不成立
      退出循环体

执行流程图

for循环语句特点

  1.初始化语句在整个循环过程中只能够执行一次
  2.循环变量只能够在循环体内有效,循环体外无法访问
  3.表达式一可以省略,也可以放在循环体的外面,作用于全局
  4.表达式二也可以省略,表示死循环
  5.表达式三也可以省略,表示死循环
  6.表达式一二三都可以省略,分号不能省略,这种写法就是标准的for循环死循环格式
  7.表达式一可以定义多个循环变量,表达式三也可以是多个控制条件语句
  8.表达式二必须是boolean类型的结果,所以可以用多个逻辑运算符连接而成的表达式

for循环语句应用

循环的解题思路:
  遵循一个本质: 循环的本质就是用来解决重复性问题,如果代码出现了重复就用循环改进

思路:
  1.怎么想的就怎么写,如果代码出现了重复,用循环改进
  2.确定循环的次数
    (1)如果可以确定选择for循环
    (2)如果不能够确定选择while循环或者do-while循环
      ①如果循环条件是先执行选择while循环
      ②如果循环体先执行就选择do-while循环
  3.找相同,找不同
    (1)找相同
      相同的话就将重复的代码直接扔入到循环体中
    (2)找不同
      结合循环变量: 找出数列变化情况和循环变量的规律
      结合自定义变量: 如果数列和循环变量找不到关系,你需要自己定义变量来找关系

for循环经典习题解析

控制台输出数据1-10

public class LoopDemo02 { public static void main(String[] args) { System.out.println("hello: " + 1); System.out.println("hello: " + 2); System.out.println("hello: " + 3); System.out.println("hello: " + 4); System.out.println("hello: " + 5); System.out.println("hello: " + 6); System.out.println("hello: " + 7); System.out.println("hello: " + 8); System.out.println("hello: " + 9); System.out.println("hello: " + 10); /* * i = 1 1 * i = 2 2 * i i * 数列和循环变量的规律是一致 */ for(int i = 1; i public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入阶乘数: "); int n = input.nextInt(); long jc = 1; for (int i = 1; i public static void main(String[] args) { for (int i = 10000; i
     3.循环体语句;
     4.控制条件语句

执行流程图

while循环经典习题解析

一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

public class LoopDemo01 { public static void main(String[] args) { // 定义变量保存折纸的厚度 double h = 0.08; // 定义变量保存折纸的次数 int count = 0; // 怎么想的就怎么写,如果代码出现了重复,用循环改进 // 第一次对折 // h *= 2; // count ++; // 第二次对折 // h *= 2; // count ++; // .... while (h
   3.循环体语句;
   4.控制条件语句
} while(2.循环条件语句);

执行流程图

do-while循环经典习题解析

驾照科目二考试,考试结束后根据成绩确定是否继续补考`

public class DoWhileDemo01 { public static void main(String[] args) { Scanner input = new Scanner(System.in); double score = 0.0; do { System.out.println("正在科目二考试中,请稍后..."); // 线程休眠 此段代码暂时不用去学习 try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("从考场开心地出来了"); System.out.print("请输入考试成绩..."); score = input.nextDouble(); } while(score for (int i = 1; i System.out.print("*"); } System.out.println(); } } }

打印九九乘法表。

/* *打印九九乘法表 * i = 1 1个表达式 * i = 2 2个表达式 * i = 3 3个表达式 * i i个表达式 * * 表达式等号左边第一个因子是从1递增到i * 表达式等号左边第二个因子就是i * 表达式等号右边的结果就是 乘积 */ public class DoubleLoopDemo05 { public static void main(String[] args) { for (int i = 1; i System.out.print(j + "x" + i + "=" + (i*j) + "\t"); } System.out.println(); } } }

输入一个大写字母,如F
  比如:
  输入:F
  输出:
    A
    ABA
    ABCBA
    ABCDCBA
    ABCDEDCBA
    ABCDEFEDCBA

/* * 输入一个大写字母,如F 比如: 输入:F 输出: A ABA ABCBA ABCDCBA ABCDEDCBA ABCDEFEDCBA i = 0 65+0 i = 1 65 65+1 65 i = 2 65 65+1 65+2 65+1 65 i = 3 65 65+1 65+2 65+3 65+2 65+1 65 外层循环控制行数 内层循环分为两个并列for循环 一个循环打印 65~65+i,另外一个循环打印 65+i-1 ~ 65 65 打印 1 行 66 打印 2 行 n 打印 c - 65 */ public class DoubleLoopDemo07 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("输入一个大写字母在ASCII码表上对应的数值: "); int num = input.nextInt(); char ch = (char) num; // 外层循环控制行数 for (int i = 0; i System.out.print((char)j); } // 另外一个循环打印 65+i-1 ~ 65 for (int k = 65 + i - 1; k >= 65; k--) { System.out.print((char)k); } // 换行 System.out.println(); } input.close(); } }

break关键字

引入

  假设小明去操场跑步,一共要跑10圈,跑到第6圈跑不动了不想跑了怎么办?
可以考虑使用break关键字退出循环

应用场景

  表示退出循环或者switch语句体

  由于循环有多层循环,所以如果需要退出多层循环,可以使用break 标签名

示例代码

public class BreakDemo01 { public static void main(String[] args) { for (int i = 1; i break; } } } }

break 标签名 退出多层循环或者switch语句

public class BreakDemo01 { public static void main(String[] args) { outLoop: for (int i = 0; i if (j == 3) { break outLoop; } System.out.print("*"); } System.out.println(); } outSwitch: switch (10) { case 10: outLoop: for (int i = 0; i if (j == 3) { break outSwitch; } System.out.print("*"); } System.out.println("outLoop"); } System.out.println("outSwitch"); break; default: break; } System.out.println("哈哈,完了"); } } break关键字经典习题解析。

打印1到10个数,遇到4的倍数程序自动退出。

/* * 打印1到10个数,遇到4的倍数程序自动退出。 */ public class BreakDemo02 { public static void main(String[] args) { for (int i = 1; i break; } System.out.println(i); } } }

循环录入学生成绩,求和,如果输入的成绩为负数,则停止输入,给出错误提示。

/* * 循环录入学生成绩,求和,如果输入的成绩为负数,则停止输入,给出错误提示。 */ public class BreakDemo03 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int sum = 0; // 死循环格式写法 while (true) { System.out.print("请输入您的成绩: "); double score = input.nextDouble(); if (score public static void main(String[] args) { for (int i = 1; i continue; } System.out.println("正在学习第" + i +"级!!!"); } System.out.println("学完了"); outLoop: for (int i = 0; i if (j == 3) { continue outLoop; } System.out.print("*"); } System.out.println(); } System.out.println("over"); } }

continue关键字经典习题解析

循环录入Java课的5个学生的成绩,统计分数大于等于80分的学生比例

package com.sxt.looppractice; import java.util.Scanner; // 1.计算 n+(n-1)+(n-2)+....+3+2+1的值 public class Practice01 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入n的值: "); int n = input.nextInt(); int sum = 0; for (int i = 1; i
收藏

上一篇JAVA相关面试题总结

下一篇java虚拟机

  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜