九九乘法表的四种玩法带详细注释 ID:I_TenKai
c#九九乘法表的四种玩法带详细注释
1.最少需要一个窗体,五个Button控件,四个Label控件
思路是这样的子,一个九九乘法表是由行列组成的,要想办法控制它的行和列,以及它的空格位,才能达到完美效果。
先上效果图↓↓↓↓
1. 控件布局如图↓↓↓↓
2. 代码如下___仅供参考__引用,转载请说明出处____如有不完善的地方请联系我
//双击but1
private void but1_Click(object sender, EventArgs e)
{
string rst = "";
//打印1-9的数(i能取1-9之间的数),i自增
//一共9个数
for (int i = 1; i < 10; i++)//控制列,一共9列,可以把10换掉自己尝试一下感觉
{
// <当i=1,j=1的时候,j<=10-(1+1) j=8,j自增>
// <当i=2,j=2的时候,j<=10-(2+1) j=7, j自增>
// <当i=3,j=3的时候,j<=10-(3+1) j=6, j自增>
//....以此类推
// <当i=9,j=8的时候,j<=10-(9+1) j=0, j自增>
//取值0-8,一共9个数
for (int j = 1; j <= 10 - (i + 1); j++)//控制行,一共9行,可以把10换掉自己尝试一下感觉
{
for (int k = 1; k < 8; k++)//打印1-7之间的空格数,一共7位数,循环7次
{
rst += " ";
//控制空格数,一条式子最多为6位数加上一个空格数"1*2=03_"用_代替一个空格位
}
}
for (int j = 1; j < i + 1; j++) //1*2=2 ==》j*i=(j*i)要输出的样式
{
rst += string.Format("{0}*{1}={2} ", j, i, i * j < 10 ? " "+ i * j : +i * j + "");
/*语法为:条件表达式?表达式1:表达式2;
a=3>4?3:4; 3>4返回flash,把4赋值给a。 表达式1返回的布尔值位turn,表达式2返回的布尔值位flash*/
}
rst += "\n";//换行
}
label1.Text = rst;
}
//双击but2
private void but2_Click(object sender, EventArgs e)
{
string rst = "";
for (int i = 1; i < 10; i++)
{
for (int j = 1; j < i + 1; j++)
{
rst += string.Format("{0}*{1}={2} ", i, j, j * i < 10 ? " " + i * j : +i * j + "");
}
rst += "\n";
}
label2.Text = rst;
}
//双击but3
private void but3_Click(object sender, EventArgs e)
{
string rst = "";//左上三角
for (int i = 1; i < 10; i++)//行数
{
for (int j = i; j < 10; j++)//列数
{
rst += string.Format("{0}*{1}={2} ", i, j, j * i < 10 ? " " + i * j : +i * j + "");
}
rst += "\n";
}
label3.Text = rst;
}
//双击but4
private void but4_Click(object sender, EventArgs e)
{
string rst = "";
for (int i = 1; i < 10; i++)
{
for (int j = 0; j < i - 1; j++)
{
rst += " ";
}
for (int j = i; j < 10; j++)
{
rst += string.Format(" {0}*{1}={2}", j, i, j * i < 10 ? " " + i * j : +i * j + "");
}
rst += "\n";
}
label4.Text = rst;
}
//双击but5
private void but5_Click(object sender, EventArgs e)
{
label1.Text = "label1";
label2.Text = "label2";
label3.Text = "label3";
label4.Text = "label4";
}
ID:I_TenKai