新手提问:关于C#

来源:百度知道 编辑:UC知道 时间:2024/06/07 17:36:35
本人才接触C#语言开发,而且没有任何C语言基础,只学过一些基本JAVASCRIPT,VBSCRIPT,现在出现一个问题。
我需要做一个数字位数上面数字 分离的程序,使用VSS开发,但是运行时报错,不知道如何进行调试,程序如下:
1 int[] array = new int[5];
2 int b = Convert.ToInt32(textBox1.Text);
3 int a = 1;
4 for(int i=1;i<=4;i=i++)
5 {
6 array[i] = (b % (10 * a)) / a;
7 a = a * 10;
8 }

在第6行报错:说计算中试图将a清0,希望各位朋友帮助下,谢谢!

1 int[] array = new int[5];
2 int b = Convert.ToInt32(textBox1.Text);
3 int a = 1;
4 for(int i=0;i<5;i++)
5 {
6 array[i] = (b % (10 * a)) / a;
7 a = a * 10;
8 }
注意第四行4 for(int i=0;i<5;i++)
你在赋值的时候是从array[1]开始的,而数组array是从array[0]开始的

楼主那个循环控制有问题吧……i=i++这样i的值一直不会变的,会发生死循环。另外i的初始值应该是从0开始吧,这样才能把全部5位都获取到。中间的代码是没有问题的,我在我的vs2005上编译通过了已经。

i++本身就是一个操作式,再写个等号就是多此一举了~

for(int i=1;i<=4;i=i++)
你这里是一个死循环!!
问题是出在a 在无限次
a = a * 10;会超出int界限 所以会变成负数


for(int i=1;i<=4;i++)

第4行 for(int i=1;i<=4;i=i++)
改为 for(int i=1;i<=4;i++)