我对这段的理解正确吗?我得到以下代码的输出 12,该代码被声明为错误

Is my understanding on this piece of correct?I am getting an output 12 for the below code which is stated as wrong

这段代码returns值“P”。初始化为空白,我想了解这段代码产生了什么。我得到的输出为 12,这是不正确的。 asciiValueof('A') 这相当于 065 .

p= ""
code = 15
while(code>0)
{
    if (code % 2 == 0)
    {
        p=p+toString(code)
        code-= 1
    }
    else
    {
        code-= 3 * (asciiValueof('A') - 64)
    }
}
\i want to print p\
print(p)

它应该从程序流中产生“1284”。

关于如何。 这就是每次迭代后的代码和 p

   // code =15, p="" 
   //  code =12, p="", substracting 3 from code adding nothing to p
   //  code = 11, p ="12" add code to p, subtracting 1 from code
   //  code = 8, p="12" substracting 3 from code adding nothing to p
  //  code =7   p = "128" add code to p, subtracting 1 from code  
 //  code =4   p ="128" substracting 3 from code adding nothing to p
 //  code = 1  p = "1284" add code to p, subtracting 1 from code
//  code =0, p = "1284" terminate from loop as code is not > 0