Java编程那些事儿41—流程控制综合示例3

5.6.1.5 99乘法表

问题:在控制台打印数学上的99乘法表

该类问题是发现数字的规律,然后将数值的规律用程序描述出来。实际实现时,可能需要耐心的进行调试。在这里,需要实现数字的多行输出,前面使用的System.out.println是输出内容并换行,后续再输出的内容就再下一行显示,如果需要在输出时不换行,则可以使用System.out.print进行输出。

99乘法表的规则是总计9行,每行单独输出,第一行有1个数字,第二行有2个数字,依次类推,数字的值为行号和列号的乘积。

实现思路:使用一个循环控制打印9行,在该循环的循环体中输出该行的内容,一行中输出的数字个数等于行号,数字的值等于行号和列号的成绩。

实现代码如下:

for(int row = 1;row <= 9;row++){    //循环行
 for(int col = 1;col <= row;col++){  //循环列
  System.out.print(row * col); //输出数值
  System.out.print(' '); //输出数字之间的间隔空格
 }
 System.out.println();  //一行输出结束,换行
}

该程序的输出为:

1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81

在该输出中,数字之间的对齐有些问题,第四行和第五行的对齐就很明显。那么如果在输出时想让数字对齐,那么就要首先思考数字为什么不能对齐?则问题直观的出现在有些数字是一位数有些是两位数,发现了原因就可以着手解决了,如果想实现数字的左对齐,则在一位数字的后续多输出一个空格,如果想实现数字的右对齐,则只需要在一位数字的前面输出一个空格即可。

以下代码实现了数字的右对齐:

for(int row = 1;row <= 9;row++){    //循环行
 for(int col = 1;col <= row;col++){  //循环列
  if(row * col < 10){   //一位数
   System.out.print(' ');
  }
  System.out.print(row * col); //输出数值
  System.out.print(' '); //输出数字之间的间隔空格
 }
 System.out.println(); //一行输出结束,换行
}

所以在实际书写代码时,代码的位置对于程序逻辑的影响很大,在编写代码时,需要认真考虑代码书写的位置。

时间: 2024-11-03 21:40:04

Java编程那些事儿41—流程控制综合示例3的相关文章

Java编程那些事儿39—流程控制综合示例

5.6 综合示例 在一般的学校学习流程控制时,重点是放在流程控制的相关语法,其实为了能成为一个合格的程序员,仅仅学好语法是远远不够的,还需要通过大量的练习来适应程序设计语言的思维方式,并且熟练地把自己的解决问题的步骤形成代码,这些都需要通过大量的阅读代码和编写代码来实现. 所以在学习流程控制时,重点是解决实际的问题,而不是仅仅停留在语法层面上,这个是很多在校学生学习程序时最突出的一个问题. 在遇到一个实际问题时,首先要能够思考出解决这个问题的数学步骤或逻辑步骤,然后才能编写对应的代码,所以遇到实

Java编程那些事儿40—流程控制综合示例2

5.6.1.3 喝汽水问题 问题:共有1000瓶汽水,每喝完后一瓶得到的一个空瓶子,每3个空瓶子又能换1瓶汽水,喝掉以后又得到一个空瓶子,问总共能喝多少瓶汽水,最后还剩余多少个空瓶子? 这个问题其实是个比较典型的递推问题,每3个空瓶都可以再换1瓶新的汽水,这样一直递推下去,直到最后不能换到汽水为止. 第一种思路:每次喝一瓶,每有三个空瓶子就去换一瓶新的汽水,直到最后没有汽水可以喝为止.在程序中记忆汽水的数量和空瓶子的数量即可. 则实现的代码如下: int num = 1000; //汽水数量 i

Java编程那些事儿42—流程控制综合练习

5.6.2 综合练习 本部分是一些整理的关于流程控制部分的综合练习,可以通过这些练习熟悉Java语言的基本语法,以及锻炼逻辑思维能力. 练习题: 1.计算数字12和18的最小公倍数. 2.如果苹果 1元/个, 桔子 2 元/个, 芒果 4元/个,若是用10元去买,有几种组合呢? 3.一只猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个,第10天早上想再吃时,发现只剩下一个桃子了.请问猴子第一天一

Java编程那些事儿30—流程控制基础

第五章流程控制 流程就是指程序执行的顺序,流程控制就是指通过控制程序执行的顺序实现要求的功能.流程控制部分是程序中语法和逻辑的结合,也是程序中最灵活的部分,是判断一个程序员能力的主要方面. 众所周知,算法是程序逻辑的核心,而算法的绝大部分代码都是流程控制实现的. 流程控制就是将程序员解决问题的思路,也就是解决问题的步骤,使用程序设计语言的语法格式描述出来的过程. 5.1 流程控制基础 流程控制在程序语言实现时,通过三类控制语句进行实现: l顺序语句 顺序语句是一种自然的语句,没有特定的语法格式,

Java编程那些事儿52—方法声明

第七章 方法 方法(method),在面向过程的语言中称作函数(function),在汇编语言中称作子程序,是一个代码功能块,实现某个特定的功能.在实际的程序开发中,方法是一种基础的组织代码的方式.本部分就介绍方法相关的概念.相关语法以及实际使用时需要注意的问题. 7.1 方法概述 方法的概念来源于数学上的函数,在数学中,当数据具有一定的规律时,就是用一个函数来代码该数字的规律,例如f(n)=n则代表1.2.3.--这样的一个数列.在数学上n是参数,对于确定的n值只有一个f(n)的值和它对应.

Java编程那些事儿25—位运算符

4.5 二进制运算符 由于计算机内部的数据都以二进制的形式存在,所以在Java语言中提供了直接操作二进制的运算符,这就是下面要讲解的位运算符和移位运算符. 使用二进制的运算符,可以直接在二进制的基础上对数字进行操作,执行的效率比一般的数学运算符高的多,该类运算符大量适用于网络编程.硬件编程等领域. 二进制运算符在数学上的意义比较有限. 在Java代码中,直接书写和输出的数值默认是十进制,Java代码中无法直接书写二进制数值,但是可以书写八进制和十六进制数字,八进制以数字0开头,例如016,十六进

Java编程那些事儿3——你适合学习程序设计吗?

 Java编程那些事儿3--你适合学习程序设计吗?作者:陈跃峰出自:http://blog.111cn.net/mailbomb          程序设计是一个技术活,所以不是适合所有的人.现在很多人听说程序设计人员待遇如何如何的好,都一窝蜂的来学习程序,其实这个现象很不正常,因为程序不一定适合你.其实对于一个人来说,适合你的才是最好的.         就像现在很多小孩子都被家长逼着去学钢琴啊什么,有些小孩根本没有艺术细胞的,所以学习的效果就是差强人意了.         其实程序设计最需要

Java编程那些事儿4——如何学好程序设计?

  Java编程那些事儿4--如何学好程序设计?作者:陈跃峰出自:http://blog.111cn.net/mailbomb          俗话说"兴趣是最好的老师",但是只靠兴趣是远远不够的,还需要付出艰辛的努力.程序设计是一种技能,需要在较短的时间内学会,就不能像学习汉语一样,通过十几年甚至更长的时间来学好,也不能像英语那样进行业余学习,以至很多大学毕业的人英语水平也不敢恭维,也达不到实用的程度.         那么如何学好程序设计呢?或者更现实一点,如何在短时间内成为一个

Java编程那些事儿1——序言

 序言          从大学毕业到现在,马上就六年了,这六年中从事过开发,也从事培训工作,相比而言,参加培训工作的时间要长一些.由于工作的特点,遇到了各种各样的学生,在学习编程时遇到了一系列的问题,也有很多迷茫的时候,希望通过编写本书,把相关的问题进行一下总结,把自己的经验和大家进行分享.当然由于一些知识也只是个人见解,也希望大家积极指正,帮助编程的初学者,以及程序开发人员深刻理解基础的概念,更好的学习编程和从事开发工作.         编写一本书,总要有个名字吧,姑且把书名叫做<Java