Logo

郎哥编程

while嵌套循环

2018-01-30 923

就像if语句可以嵌套一样,一个循环也可以嵌套在另一个循环中,一个循环中含有另一个循环就称为嵌套循环。

嵌套循环的工作原理如下:首先外循环的第一轮触发内循环,然后内循环将一直执行到完成为止,然后,外循环的第二轮再次触发内循环,此过程不断重复直到外循环结束。使用嵌套循环时,只有在内循环完全结束后,外循环才会执行下一趟循环,一个while循环可以嵌套在另一个while循环中,示例1演示了嵌套while循环的用法。

示例1:用*输出一个直角三角形图案。

在D盘Java目录下,新建“AngleSample.java”文件。用记事本打开“AngleSample.java”文件,输入以下代码:

public  class  AngleSample
{
  public static void main(String args[])
  {
    int nstars=1,stars;
    //外层循环控制输出*的行数
    while( nstars <= 10 )
    {
         stars = 1;
         //内层循环控制打印星号的数量
         while( stars <= nstars )
      {
            System.out.printf("*");
            stars++;          
      }
         System.out.printf("\n");
         nstars++;
    }
  }
}

代码结构分析

程序功能主要是演示while嵌套循环语句的使用。

程序用外层循环控制输出*的行数,循环条件为nstars <= 10,nstars初始化为1,该条件允许输出10行*;内层循环控制*输出的数量,循环条件为stars <= nstars,内层循环开始前,stars都被赋值为1,然后在内层循环体内做自增操作。

编译“AngleSample.java”文件,在命令行窗口输入“javac  AngleSample.java”并执行命令,编译通过后,在命令行窗口输入“java  AngleSample”运行Java程序,命令行窗口显示如下信息:

  a1006.png

图 8-7 示例1直角三角形输出结果

 

示例2:输入字符序列,统计输入的字符数。

在D盘Java目录下,新建“CountSample.java”文件。用记事本打开“CountSample.java”文件,输入以下代码:

import java.util.*;
public  class  CountSample
{
  public static void main(String args[])
  {
    int x;
    char i,ans;
    ans = 'y';
    Scanner sc = new Scanner(System.in);
    do {
       x = 0;
       System.out.println("请输入字符序列:");
       do {
         String s = sc.next();
         i = s.charAt(0);
         x++;
       }while( i != 'q');
       System.out.printf("\n输入的字符数为:%d",--x);
       System.out.println("\n是否需要输入更多字符序列(Y/N)?");
       String s1 = sc.next();
       ans = s1.charAt(0);
    }while( ans=='y' || ans=='Y' );
   }
}

代码结构分析

程序功能主要是演示do-while嵌套循环语句的使用。

程序首先提示用户输入字符序列,进入内层do-while循环,接收用户输入的字符序列,直到用户按下回车键并输入字符q,程序将退出内层的do-while循环。程序接着询问用户是否要输入更多的字符序列,如果用户输入y或Y,do-while外循环的条件为真,则程序将提示用户输入另一序列字符。直到用户按下除y或Y以外的任何键时,外循环才结束。

另外,Scanner类没有提供输入单个字符的方法,程序采用Scanner类的next()方法获取用户输入的字符串,再通过String类的charAt方法获取字符串的第一个字符。charAt方法将在数组一章进行讲解。

编译“CountSample.java”文件,在命令行窗口输入“javac  CountSample.java”并执行命令,编译通过后,在命令行窗口输入“java  CountSample”运行Java程序,命令行窗口显示如下信息:

a1007.png


图 8-8 示例2字符数统计输出结果

 


■ 知识点拨

while循环和do-while循环也可以互相嵌套。例如,可以将示例1的内层while循环修改为do-while循环,或者将外层循环修改为do-while循环。

■ 思考与练习

编写一个程序,最多接收10个数,求这些数的和,用户可通过输入999来终止程序,并显示输入的数的和。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论