while循环用户输入

时间:2015-02-11 20:38:47

标签: java while-loop

我正在尝试创建一个while循环作为数据解释器中的一个方法,它接受一个条件,当条件为true时,执行语句的主体,然后在条件不再为真时返回值。如果它没有执行,那么它返回0.我遇到的问题是我不知道如何让while循环执行语句的主体。以下是我到目前为止的情况,我需要在正确的方向上指出我在这里缺少的内容:

public class WhileStatement<b> extends Statement {

private final Expression condition; 
private final Statement body;   


/**
 * @param c the condition for the while loop
 * @param b the body of the loop
 */
public WhileStatement(Expression c, Statement b) {

this.body = b; 
this.condition = c; 



}

/**
 * Interpret this statement, returning the resulting value.
 * 
 * @param env the current environment
 * 
 * @return The integer value from the statement that is the loop
 *         body when it is last executed, or IntegerValue 0 if the
 *         loop never executes.
 */
@Override
public IntegerValue interpret(Environment env) {

    IntegerValue cond = condition.interpret(env);
    IntegerValue bod = body.interpret(env);



    while (cond.equals(true)) { 
        return bod; 

    } 

    return new IntegerValue(0); 
    } 

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你应该更加努力地描述你的代码!

假设至少知道你在做什么,我理解你的问题:

IntegerValue cond = condition.interpret(env);
IntegerValue bod = body.interpret(env);

IntegerValue result = new IntegerValue(0);

while (cond.equals(true)) { 

    // execute whatever you wanted here in whatever way you do it
    result = bod; 

} 

return bod;