前面几天里,学习并记录了 C# 编程语言的部分基础知识内容。学习是需要不断地学而时习之,一是为了巩固前面所学的知识,二是对前面学习的内容查缺补漏。因此,为了检验前面所学,下面以九九乘法表为例,做一个题目练习。
1、九九乘法表(一)
思路分析
最笨的方法,就是输入九个 Console.WriteLine()
在括号里填上对应的内容,如 1 * 1 = 1
等等。显然,如果这么做,那么学习编程语言的意义在哪里?我写在纸上都比这快。
首先,我们并不希望手动地一个一个敲出数字 1 到 9,而希望是程序能够自动输出 1 到 9.因此这里需要使用循环语句,例如:
for(int i=1;i<=9;i++){...}
这样一来,就可以获得了数字 1 到 9 的内容。
但我们需要的是两个数字相乘,前面的循环语句虽然获取了一组数字,但是每次调用的时候只有一个。因此,还需要再一个循环嵌套,获取第二个数字来进行相乘。
for(int j=1;j<=9;j++){...}
这样的结果,是存在一些重复的内容,例如:1 * 2 = 2
和 2 * 1 = 2
。这里,我们需要剔除一些重复的部分。只需要将上面循环的条件做一些修改即可:
for(int j=1;j<=i;j++){...}
另外还要提一下 C# 中两种打印方式,一种是不换行打印 Console.Write()
,一种则是换行打印 Console.WriteLine()
,也相当于 Console.Write("\n")
.
代码实现
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
int num = j * i;
Console.Write("{0} * {1} = {2}", j, i, num);
}
Console.WriteLine();
}
运行结果
2、九九乘法表(二)
思路分析
上面的九九乘法表是第一列是 1*x=y
,第二列则是 2*x=y
…
这时候变个需求,希望第一行是 1*x=y
,第二行是2*x=y
…
具体的实现也和上面的思路差不多:
for (int i = 1; i <= 9; i++){
for (int j = i; j <= 9; j++){
int num = i * j;
Console.Write("{0} * {1} = {2}\t", i, j, num);
}
Console.WriteLine();
}
结果是完成了前面的需求,但是这时候又萌生了一个需求,第一列是 x*1=y
,第二列是x*2=y
…说白了,就是靠右对齐。
首先在上面的程序基础上,我保留了所有,包括了重复的部分。其次加入了判断语句,如果第一个数字比第二个数字小,那么就直接输出空白。否则就正常输出。
实现代码
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
if (j < i)
{
Console.Write("\t\t");
}
else
{
int num = j * i;
Console.Write("{0} * {1} = {2}\t", i, j, num);
}
}
Console.WriteLine();
}
运行结果
三、总结
九九乘法表的打印虽然简单,但也不失乐趣,可以换着花样来打印乘法表,在这其中也锻炼了对于编程的逻辑思维。
在写本篇学习记录的时候,程序编程方面基本没啥问题。最大的问题就在于我的表述能力和书面能力,写的脑瓜子都是嗡嗡的。
如文中若有不当之处,或者谬误之处,还望大家不吝赐教。