如何在先前的if语句中使用分配给变量的变量值?

时间:2015-06-25 10:31:24

标签: variables button if-statement variable-assignment

这是Android Studio中的代码。我创建按钮开始,更高和更低。目标是获得按钮" start"显示随机数猜测。当按钮"更高"时,必须使用这个初始随机数。或"降低"正在被迫。但是,如果我以下面的方式进行,它会给我一个x未初始化的错误。我知道这是因为我在另一个if循环中为x赋值,但我不知道如何修复它。任何人都可以帮助我吗?

  @Override
  public void onClick(View v) {
    int x;
    int lowBound;
    int highBound;
    if (v==start) {
        x=(int) Math.random()*1000;
        myTextView2.append("Random guess is "+String.valueOf(x));
    }
    if (v==higher) {
        lowBound=x;
        x= (int) (lowBound+Math.random()*(1000-lowBound));
        myTextView2.append(" New guess is "+String.valueOf(x));
    }
    if (v==lower) {
        highBound=x; 
        x=(int) (highBound-Math.random()*(1000-highBound));
        myTextView2.append(" New guess is "+ String.valueOf(x));
    }

}

1 个答案:

答案 0 :(得分:0)

如果v等于start以外的任何内容,则该变量将分配给lowerBoundupperBound未初始化。

除非我读错了,否则这实际上表明你的逻辑存在缺陷:

每次调用onClick时,x都将重置v == start,或者在未启动时使用x

onClicks应该在方法之外声明,因为你需要它在computeBicliques <- function(graph, k, l) { vMode1 <- c() if (!is.null(V(graph)$type)) { vMode1 <- which(!V(graph)$type) vMode1 <- intersect(vMode1, which(degree(graph) >= l)) } nb <- get.adjlist(graph) bicliques <- list() if (length(vMode1) >= k) { comb <- combn(vMode1, k) i <- 1 sapply(1:ncol(comb), function(c) { commonNeighbours <- c() isFirst <- TRUE sapply(comb[,c], function(n) { if (isFirst) { isFirst <<- FALSE commonNeighbours <<- nb[[n]] } else { commonNeighbours <<- intersect(commonNeighbours, nb[[n]]) } }) if (length(commonNeighbours) >= l) { bicliques[[i]] <<- list(m1=comb[,c], m2=commonNeighbours) } i <<- i + 1 }) } bicliques } 之间“生存”。