美文网首页
【七】循环语句for,while

【七】循环语句for,while

作者: Michael_abc | 来源:发表于2020-02-20 17:58 被阅读0次

    前言

    for,while没有大的区别,本质来说是一样的。

    正文

    在SKL中,我只实现了for语法
    for语句的实现

    statement_control_t *execute_for_statement(for_statement_t *fors, hash_t *variable_table) {
        execute_expression(fors->before, variable_table);
        zvalue_t *condition_res = execute_expression(fors->condition, variable_table);
        statement_control_t *control_exe;
        int is_break, is_continue;
        while (zvalue_convert_bool(condition_res)) {
            is_break = is_continue = 0;
            condition_res = execute_expression(fors->condition, variable_table);
            control_exe = execute_statement(fors->statement_list, variable_table);
            execute_expression(fors->after, variable_table);
            switch (control_exe->type) {
                case statement_control_type_return:
                    return control_exe;
                    break;
                case statement_control_type_break:
                    is_break = 1;
                    break;
                case statement_control_type_continue:
                    is_continue = 1;
                    break;
                case statement_control_type_default:
                default:
                    break;
            }
            memory_free(control_exe->result);
            memory_free(control_exe);
            if (is_break) {
                break;
            }
            if (is_continue) {
                continue;
            }
        }
        return create_default_statement_control();
    }
    

    while的实现也是类似的,for语法可以用while语法来书写,两者是一样的

    结束语

    所谓一通百通,如是也,都是控制阀,到最后都是执行语句而已。

    相关文章

      网友评论

          本文标题:【七】循环语句for,while

          本文链接:https://www.haomeiwen.com/subject/cutfqhtx.html