栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

「你值得拥有」3个加深对 循环结构 理解的典型案例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

「你值得拥有」3个加深对 循环结构 理解的典型案例

1,打印九九乘法表

打印格式如下:

分析

实现九九乘法表要从结构和计算两个角度进行切入。

首先看结构,它是一个直角三角形,可以通过两层循环的嵌套来实现形状问题和结构问题。

关键代码如下:

for(int i=;i<=9;i++){
    for(int j=1;j<=i;j++){
        System.out.format("*");//输出用了format,不换行显示  
    }
    System.out.println();
}

其次,通过结构中代码的分析可以看出循环变量“i” 和 “j” 都是从1 到9 按照规律进行循环更新值,关键代码如下:

for(int i=1;i<=9;i++){
    for(iint j=1;j<=i;j++){
        System.out.format("%d*%d=%-4d",j,i,(i*j));//注意格式
    }
    System.out.println();
}

在嵌套循环中可以通过Java 提供的标签功能快速从内部循环跳到外层某一个定义好标签的循环,结合“break”和“continue”使用。通过如下代码体会嵌套循环中标签的用法。

public class Demo{
    public static void main(String[] args){
        myLoop:
           for(int i=0;i<3;i++){
               for(int j=0;j<3;j++){
                   if(i%2==0){
                       System.out.println("*"+i);
                       break myLoop;
                   }
                   System.out.println("$"+i);
               }
           }
    }
}//在比价复杂的嵌套循环结构中会用到标签,以便简化部分逻辑。  

2,斐波拉契数列

维基百科上关于斐波那契数列的说明如下:斐波那契数列由0 和 1 开始,之后的斐波 那契数就是由之前的两数相加而得出,前面几个斐波那契数是0,1,1,2,3,5,8,13,21, 34,55,89,144,233 …… 特别指出:0 不是第 1 项,而是第0项。

用程序实现斐波那契数列打印的方法之一是用循环结构。以下代码实现了前 20 个斐波 那契数的打印。

int n1 = 1, n2 = 1, num = 0; 
// 先输出前 3 个数
System.out.format ("%d-5% -5%d -5d%",0,n1,n2);
for (int i = 0; i< 9;i++){ //输出后续的 8 个规律数
   num = n1 + n2; //获得前两个数之和,存人 num 
   n1 = n2; //前一个数成为下一个数 
   n2 = num; //下一个数成为之前两数之和 
   System.out.format ("*-5a", num); //打印两数之和 
}
//输出结果为:
输出结果为:“0 1 1 2 3 5 8 13 21 34 55 “。建议通 过断点调试观察变量值和输出内容的变化。  
3.解析五位正整数,求个位、十位、百位、千位、万位之和

通过循环取余数和整除取整可以达到目的。比如整数 358,通过取余 10 可以得到 8 (即个位数),通过整除 10、从 358 变为 35,方便下次继续取余 10,获取个位数。通过以下 示例代码可以直观了解通过循环解决此类问题的思路。

import java.util.Scanner; 
public class Demo{
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int num=0,sum=0;
        System.out.print("请输入五位数及以下的正整数");
        num=input.nextInt();
        if(num<0||num>=100000){//判断有效性
            System.out.println("范围超出,程序将推出");
            return ;
        }
        while(num>0){
             int temp=num%10;//获取个位数
             sum+=temp;//进行累加
             num/=10;//整除
        }
        System.out.println("位数之和是:"+sum);
    }
}
 

 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/490267.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号