Go语言打印九九乘法表,这是整洁代码范例

/ Go 语言输出九九乘法表 /

九九乘法表是我们学习编程时的一项基本练习,它看似简单,通过实现输出九九乘法表可以加深对 Go 语言循环结构的理解和运用。

本文将使用 Go 语言输出九九乘法表,内容涵盖:

  1. 问题描述
  2. 基本思路
  3. 使用双层 for 循环实现
  4. 控制打印格式
  5. 加入条件判断
  6. 计算并打印结果
  7. 优化循环结构
  8. 为表格添加标题
  9. 完整代码示例
  10. 使用go方法实现(纯练习)
  11. 总结思考

希望通过具体的代码实现和输出分析,可以帮助大家更好地理解 Go 语言中的基础循环语法,和编程思维方式。输出九九乘法表看似简单,其中却包含许多编程学习的思考点。

*1*

1. 问题描述

要求编写 Go 语言程序,在终端打印输出九九乘法表,格式如下:

1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
...
1 * 9 = 9 2 * 9 = 18 ... 9 * 9 = 81

分析可知需要使用双层循环,并在内层控制打印格式。

*2*

2. 基本思路

九九乘法表输出的基本思路是:

  • 使用外层循环控制行
  • 使用内层循环控制列
  • 内层循环处理乘法计算和打印

*3*

3. 使用双层 for 循环实现

使用双层 for 循环可以实现九九表的打印:

for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ { }
}

外层 for 循环控制行,内层 for 循环控制列。

*4*

4. 控制打印格式

通过 fmt.Printf 可以格式化输出内容:

for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d * %d = %d", i, j, i*j)
}
fmt.Println()
}

Println 打印换行符,进行行分隔。

*5*

5. 加入条件判断

可以判断内层循环 index,从而控制换行:

for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d * %d = %d", i, j, i*j)
if j < i {
fmt.Printf("\t")
}
}
fmt.Println()
}

*6*

6. 计算并打印结果

上面直接使用 i * j 进行运算,也可以分开计算结果:

for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
result := i * j
fmt.Printf("%d * %d = %d", i, j, result) if j < i {
fmt.Printf("\t")
}
}
fmt.Println()
}

这样分离了计算和输出。

*7*

7. 优化循环结构

可以将条件判断移到 for 循环中:

for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ { if j < i {
fmt.Printf("\t")
}
}
fmt.Println()
}

这样可以精简代码逻辑。

*8*

8. 为表格添加标题

可以在外层再套一层循环打印标题:

fmt.Println("Multiplication Table")

for i := 1; i <= 9; i++ {

  // 省略内层循环逻辑

  fmt.Println()
}

这样输出表格增加了标题。

*9*

9. 完整代码示例

综合以上,完成代码如下:

package main

import "fmt"

func main() {

  fmt.Println("Multiplication Table")

  for i := 1; i <= 9; i++ {

    for j := 1; j <= i; j++ {

      if j < i {
fmt.Printf("%d * %d = %d\t", i, j, i*j)
} else {
fmt.Printf("%d * %d = %d", i, j, i*j)
}
} fmt.Println()
}
}

输出结果:

Multiplication Table
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
...

*10*

使用go方法实现如下:-----当然这个没必要使用方法,直接一个函数完事儿

package main

import "fmt"

// 定义结构体
type Multiplication_Table struct {
} func (mt Multiplication_Table) res() {
for i := 1; i <= 9; i++ { for j := 1; j <= i; j++ { if j < i {
fmt.Printf("%d * %d = %d\t", i, j, i*j)
} else {
fmt.Printf("%d * %d = %d", i, j, i*j)
}
}
fmt.Println()
}
}
func main() {
var mt Multiplication_Table
fmt.Println("Multiplication Table")
//调用res()方法
mt.res()
}

运行结果如下:

*11*

11. 总结思考

输出九九乘法表虽看似简单,但其中包含:

  • 嵌套循环的思想
  • 循环控制和判断
  • 格式化打印输出
  • 算法优化

都是编程非常基础的概念和技能。在实现的过程中不仅巩固了 Go 语言循环语法,也培养了编程思维能力。可以进行扩展练习,如输出更大的表格、或者将结果输出到文件等。输出九九乘法表是一个编程入门的好题目。

Go语言打印九九乘法表,这是整洁代码范例的更多相关文章

  1. 【Java】Java_15 打印九九乘法表

    使用For循环嵌套即可打印九九乘法表 以下是具体代码: /** * 打印九九乘法表 */ package com.oliver.test; public class TestMultiplicatio ...

  2. scala打印九九乘法表的5种实现

    使用scala打印九九乘法表,可以有多种实现方法,实现的过程充分的体现的scala语言的优势和巨大的简洁性和高效性, 下面我用了5种方法实现九九乘法表. 使用类似于java,c++等指令风格的的编程实 ...

  3. C#打印九九乘法表

    C#打印九九乘法表... ---------------------------------- using System; using System.Collections.Generic; usin ...

  4. 利用Python循环(包括while&for)各种打印九九乘法表

    一.for循环打印九九乘法表 #注意:由于缩进在浏览器不好控制,请大家见谅,后续会有图片传入. 1.1 左下角 for i in range(1,10): for j in range(1,i+1): ...

  5. 写一个方法,用一个for循环打印九九乘法表

    public class MultiplicationTable { /**  * @description 写一个方法,用一个for循环打印九九乘法表   * @author  wangkun  * ...

  6. python脚本7_打印九九乘法表

    #打印九九乘法表 for i in range(1,10): s = "" for j in range(1,i+1): s += str(j) + '*' + str(i) + ...

  7. python—用for循环、while循环和一句话打印九九乘法表

    用for循环打印九九乘法表: for i in range (1,10): for j in range(1,10): print(j,"x",i,"=",i* ...

  8. 使用whIle循环语句和变量打印九九乘法表

    -设置i变量declare @i int --设置j变量declare @j int --设置乘法表变量declare @chengfabiao varchar(1000)--给i,j,@chengf ...

  9. python3 打印九九乘法表

    打印九九乘法表 # !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan for i in range(1, 10): fo ...

  10. 【shell脚本】打印九九乘法表

    打印九九乘法表 一.seq介绍 seq命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式.宽度.分割符号进行控制 语法: [1] seq [选项 ...

随机推荐

  1. Mysql数据库未添加索引引发的生产事故

    最近开发的新功能主要是首页的红点提示功能,某个用户登录系统app,然后进入某一个功能模块, 在该功能下面有很多地方可以操作,新功能就是根据用户信息查询当月是否存在新的数据.总共有四五 个地方如果出现增 ...

  2. 第143篇:手写vue-router,实现router-view

    好家伙,   今天来手写我们的老伙计vue-router,   1.替换router 新开一个项目,并使用我们手写的router   2.大致结构 let Vue; // 保存vue的构造函数 cla ...

  3. 剑桥英英在线词典 - 可以查单词 可数-不可数 - 英语 a few/few/a little/little

    There is _____ milk in a fridge. Let's go buy some. A. a few B. few C. a little D. little 解析:经典老知识点 ...

  4. 安装VMware——Unable to install all modules.See log /tmp/vmware-han/vmware-6098.log for detalls.(Exit code 1)的解决方法(模块加载失败)

    这是编译失败的原因在VM社区有这样一种解决方案,亲测有效,帮助我自己解决的麻烦,所有在这分享,希望能够帮助到小伙伴:不要被接下来的代码吓倒因为这是github上项目,所以要先在ubuntu上安装git ...

  5. AOSP源码编译—交换空间扩容

    编译AOSP源码的时候会出现提示如下: 意思是需要16G左右的内存(实际上编译会超过16G),而我们之前安装Ubuntu的时候只分配了8G,编 译一定会失败!此时需要添加虚拟内存(swap交换空间) ...

  6. NJUPT第二次积分赛小结与视觉部分开源

    NJUPT第二次积分赛小结与视觉部分开源 跟队友连肝一周多积分赛,写了一堆屎山,总算是今天完赛了.结果也还行,80分到手.其实题目是全做完了的,但验收时我nt了没操作好导致丢了不少分,而且整个控制流程 ...

  7. 记录--『uni-app、小程序』蓝牙连接、读写数据全过程

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 本文简介 这是一次真实的 蓝牙收发数据 的全过程讲解. 本文使用 uni-app + Vue3 的方式进行开发,以手机app的方式运行(微 ...

  8. ssm整合简单配置

    最近由于系统重装,之前已经写好了的框架都被我删的一干二净,于是自己动手重新搭了个简单的ssm(spring springmvc mybatis) 运行环境 (java1.8,Tomcat8.5,mav ...

  9. 基于ARM联合ZYNQ的设计小结

    基于ARM联合ZYNQ的设计小结 1.硬件设计 硬件设计就是使用PS的自带硬核,外接其他可以连接AXI的IP核,构成一个自定义的硬件平台.如果简单理解,可以把这些操作统称为底层.这部分的设计还是比较方 ...

  10. ABC327 A-F

    vp on 2023.11.12 A: 使用 string 的 find,find 在找不到时会返回string::npos. B.C:略. D 发现原题相当于二分图判定. E 线性DP. F 原题相 ...