为什么该程序无法在页面中打印任何内容?

时间:2020-05-11 16:31:54

标签: javascript conditional-operator

//此程序计算数字被2整除的次数。

//这是将其拆分为2的次数和次数。

    let Num=64
    let divisible=0

//这是三元运算符,它基本上会问一个问题。

    Num % 2 === 0 ?
    divisible=divisible++ : document.write(divisible);

    Num/=2;

    Num % 2 === 0 ?
    divisible=divisible++ : document.write(divisible);

    num/=2

    Num % 2 === 0 ?
    divisible=divisible++ : document.write(divisible);

//一旦语句的计算结果为假,它将写入数字被除的次数 乘2进入文档。

3 个答案:

答案 0 :(得分:1)

您可以循环尝试。

let num=64;
let divisible=0;
while(num % 2 === 0) {
    num /= 2;
    divisible++;
}
console.log(divisible);
document.write(divisible);

答案 1 :(得分:1)

此代码存在多个问题。一些评论指出了循环问题。但是,一个不能用循环解决的突出问题是您滥用post-fix increment operator++。该运算符返回该值,然后递增该值,因此divisible = divisible++将导致divisible保持不变。根据您的意图,您所需要做的就是divisible++

尝试以下操作:

while(true){
    if(Num % 2 === 0){
        divisible++; 
        Num /=2;
    }
    else{
        document.write(divisible); 
        break;
    } 
}

答案 2 :(得分:0)

在此示例中给出了64,并且没有提供循环,它将永远不会 上面提供的3个步骤中的document.write(divisible)语句。这就是为什么什么都没打印出来。

此外, divisible = divisible ++没有任何意义。在这里,由于它是后缀运算符,因此将分配第一个值,然后将其递增,因此整除值将仅为0

import random 
import numpy as np
import cvxpy as cv
import math
n=5
m=4
U= cv.Variable (n)
Sg= cv.Variable (shape=(n,1), complex=True)
Se= cv.Variable (shape=(m,1), complex=True)
Sr= cv.Variable (shape=(m,1), complex=True)
W= cv.Variable (shape=(m,1), complex=True)
Pl=cv.Variable (1)
Qd= np.array([0, 1, 0, 4, 0])
Pd= np.array([0, 3, 0, 8.5, 0])
Sd= np.array ([(Pd**2+ Qd**2)**(1/2)]).reshape((5,1))
Smax= np.array([10, 0, 5, 0, 2])
Apos= np.array([[1, 0, 0, 0],[0, 1, 0, 0],[0, 0, 1, 0],[0, 0, 0, 1],[0, 0, 0, 0]])
Aneg= np.array([[0, 0, 0, 0],[-1, 0, 0, 0],[0, -1, 0, 0],[0, 0, -1, 0],[0, 0, 0, -1]])
Ybus=np.array([[166.605-96.2606j, -166.605+96.2606j, 0, 0, 0],[-166.605+96.2606j, 305.267-246.08j, -138.662+146.819j, 0, 0],[0, -138.662+146.819j, 356.948-394.397j, -215.285+247.578j, 0],[0, 0, -215.285+247.578j, 773.225-590.926j, -557.94+343.348j],[0, 0, 0, -557.94+343.348j, 557.94-343.348j]])
objective= cv.Minimize (Pl)
res=[]
res+=[Pl>= cv.sum(cv.real(Se+Sr))]
res+= [U[1]==1]
for j in range (m):
  res+= [Se[j]==Ybus[j][j+1].conjugate()*U[j]-W[j]*Ybus[j][j+1].conjugate()]
  res+= [Sr[j]==Ybus[j][j+1].conjugate()*U[j+1]-W[j]*Ybus[j][j+1].conjugate()]
  res+=[cv.power((cv.norm(W[j]),2))<=U[j]*U[j+1]]
res+= [Sg-Sd== Apos@Se + Aneg@Sr]
for i in range (m):
  res+= [cv.norm(Sg[i])<=Smax[i]]
  #res+= [cv.norm([[2*W[i]],[U[i]-U[i+1]]])<=U[i]+U[i+1]]
res+=[cv.real(Se+Sr)>=0]
sos = cv.Problem(objective,res)
optval=sos.solve (verbose=True)
print (U.value)

而且,根据我的理解文档,写接受字符串参数,但此处可整除的是数字类型。