请教VB问题
发布网友
发布时间:2022-05-10 14:39
我来回答
共1个回答
热心网友
时间:2023-10-12 02:32
1、not x是对数字x进行逻辑非运算,其过程可查有前资料,但对于整数,有一个规律,假设 y = not x ,则 x + y = -1 (如:not 3 就等于 -4 )。
loop while not x 是指当`not x 值不等于零时,继续执行循环。
我们来看:x=5 时,先运行打印5,再x=x-1=4,到达loop语句时x的值是4, 这样,not x=-5<>0,所以会继续循环。
第二次循环时x=4,先打印4,再x=x-1=3,到达loop语句时x的值是3, 这样,not x=-4<>0,所以会继续循环。
这样继续打印出 3 2 1 0。当打印出0之后,x=x-1=-1,这时not x 的值就是0了!也就终止了循环。
所以打印出了5 4 3 2 1 0,不打印负数。
2、not isnumeric不是语句,前面那个if才是语句。not isnumeric(useerinput) 也是一个逻辑运算式,当isnumeric(useerinput)=ture时,not isnumeric(useerinput) =false;当isnumeric(useerinput)=false时,not isnumeric(useerinput) =ture。所以not isnumeric(useerinput)能做条件转移语句的条件。
3、其实就是一行一行地把a中的元素,按照从左至右的顺序放到b中,比如:先放第一行(i=1)的n个元素,那肯定是b(1)=a(1,1),b(2)=a(1,2),...,b(n)=a(1,n),这样就把第一行放完了;该放第二行了(i=2),第二行的元素是a(2,1),...,a(2,n),当然不能再放到b(1)——b(n)里了,再是放到b(n+1),...,b(n+n)中,可以写成放到b((i-1)*n+1),b((i-1)*n+2),...,b((i-1)*n+n)中了;以后的各行都可以这样写;回头看看第一行也可以这样写。所以就出现了:b(((i-1)*n+j)=a(i,j)