0
if-else句の数を計算する必要があります。私はそれを行うには、javaパーサーを使用しています。 どのように私は他の句を数えるん:私はすべてのif-else句の合計数を計算します(ネストされたものを含む)
node.getChildNodesByType(IfStmt.class))
問題の関数を使用して、句の場合とそうでない-IFの数を取得しました :
私は今まで何をやったか? この関数は "else"節を無視します。
例:この場合
if(condition)
{
if(condition 2)
//
else
}
else if(condition 3)
{
if (condition 4)
//
else
}
else
{
if(condition 5)
//
}
、私は答えは8になりたいと思いますが、それが発生したため、コールの大きさは5を返しますのみ5「の場合」とは、他の条項を無視。 else節を数えるのに直接役立つ関数はありますか?
マイコード:
public void visit(IfStmt n, Void arg)
{
System.out.println("Found an if statement @ " + n.getBegin());
}
void process(Node node)
{
count=0;
for (Node child : node.getChildNodesByType(IfStmt.class))
{
count++;
visit((IfStmt)child,null);
}
}
このことができます参照してください:https://stackoverflow.com/questions/17552443/google-javaparser-ifstmt-not-counting-consequent-else-if – Berger
@Berger Iそれを通過しました。発生する問題は、ネストされたif-elseを考慮しないことです。 その質問のOPの例は私のものと異なり、その答えはこれではうまくいかない:/ – xmacz