Go语言打印九九乘法表,这是整洁代码范例
Go语言打印九九乘法表,这是整洁代码范例
/ Go 语言输出九九乘法表 /
九九乘法表是我们学习编程时的一项基本练习,它看似简单,通过实现输出九九乘法表可以加深对 Go 语言循环结构的理解和运用。
本文将使用 Go 语言输出九九乘法表,内容涵盖:
- 问题描述
- 基本思路
- 使用双层 for 循环实现
- 控制打印格式
- 加入条件判断
- 计算并打印结果
- 优化循环结构
- 为表格添加标题
- 完整代码示例
- 使用go方法实现(纯练习)
- 总结思考
希望通过具体的代码实现和输出分析,可以帮助大家更好地理解 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语言打印九九乘法表,这是整洁代码范例的更多相关文章
- 【Java】Java_15 打印九九乘法表
使用For循环嵌套即可打印九九乘法表 以下是具体代码: /** * 打印九九乘法表 */ package com.oliver.test; public class TestMultiplicatio ...
- scala打印九九乘法表的5种实现
使用scala打印九九乘法表,可以有多种实现方法,实现的过程充分的体现的scala语言的优势和巨大的简洁性和高效性, 下面我用了5种方法实现九九乘法表. 使用类似于java,c++等指令风格的的编程实 ...
- C#打印九九乘法表
C#打印九九乘法表... ---------------------------------- using System; using System.Collections.Generic; usin ...
- 利用Python循环(包括while&for)各种打印九九乘法表
一.for循环打印九九乘法表 #注意:由于缩进在浏览器不好控制,请大家见谅,后续会有图片传入. 1.1 左下角 for i in range(1,10): for j in range(1,i+1): ...
- 写一个方法,用一个for循环打印九九乘法表
public class MultiplicationTable { /** * @description 写一个方法,用一个for循环打印九九乘法表 * @author wangkun * ...
- python脚本7_打印九九乘法表
#打印九九乘法表 for i in range(1,10): s = "" for j in range(1,i+1): s += str(j) + '*' + str(i) + ...
- python—用for循环、while循环和一句话打印九九乘法表
用for循环打印九九乘法表: for i in range (1,10): for j in range(1,10): print(j,"x",i,"=",i* ...
- 使用whIle循环语句和变量打印九九乘法表
-设置i变量declare @i int --设置j变量declare @j int --设置乘法表变量declare @chengfabiao varchar(1000)--给i,j,@chengf ...
- python3 打印九九乘法表
打印九九乘法表 # !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan for i in range(1, 10): fo ...
- 【shell脚本】打印九九乘法表
打印九九乘法表 一.seq介绍 seq命令用于以指定增量从首数开始打印数字到尾数,即产生从某个数到另外一个数之间的所有整数,并且可以对整数的格式.宽度.分割符号进行控制 语法: [1] seq [选项 ...
随机推荐
- liunx上安装django ,启动uwsgi ,语音播报python实现过程
由于需要做一个语音播报实现,用到的技术是python ,需要事先搭环境,安装uwsgi djagno环境,以下内容为百度上找到的好一点的内容,确实照着做成功了,转载一下,下次更好找资料 liunx ...
- 第142篇:原生js实现响应式原理
好家伙,狠狠地补一下代码量 本篇我们来尝试使用原生js实现vue的响应式 使用原生js,即代表没有v-bind,v-on,也没有v-model,所有语法糖我们都用原生实现 1.给输入框绑个变量 & ...
- 将本地文件上传到github仓库
将本地文件上传到github空仓库 本地使用git上传文件: 第一步:在需要的文件夹(文件夹里已经放了需要提交的内容)右击git bash,输入git init 第二步:将本地文件上传到本地git仓库 ...
- kettle教程--通过配置文件同步所需要的列数据
kettle教程--通过配置文件同步所需要的列数据 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「kettle」, 免费领取全网最热的kettle实战视频教程 ht ...
- Jitpack发布Android库出现Direct local .aar file dependencies are not supported when building an AAR
原文:Jitpack发布Android库出现Direct local .aar file dependencies are not supported when building an AAR - S ...
- day02-MySQL基础知识
MySQL基本知识 1.数据库 1.1.创建数据库 语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[,create_ ...
- const用法及与constexpr区别总结
1.用const修饰函数的参数 参数是值传递 由于函数将自动产生临时变量复制该参数,该参数无需保护,没必要用const 参数是指针传递或者引用传递 const修饰的指针或引用所指向的值不可变.如果该参 ...
- android ndk生成第三方库的so方法(ndk-build,Application.mk,Android.mk)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- TP6框架--EasyAdmin学习笔记:列表调用搜索,开发常见问题记录
这是我写的学习EasyAdmin的第五章,这一章我给大家分享下列表调用搜索的相关知识,并记录说明下开发时碰到的常见问题 首先说明下如何在页面中调用layui的搜索,效果如下: 代码如下: define ...
- 01-【HAL库】STM32实现串口打印
一.什么是串口 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输 ...