diff --git a/src/ast/expression/DoWhileExpression.cpp b/src/ast/expression/DoWhileExpression.cpp
new file mode 100644
index 0000000..c7d957e
--- /dev/null
+++ b/src/ast/expression/DoWhileExpression.cpp
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2024 - Nathanne Isip
+ * This file is part of Zhivo.
+ *
+ * Zhivo is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation, either version 3 of the License,
+ * or (at your option) any later version.
+ *
+ * Zhivo is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Zhivo. If not, see .
+ */
+
+#include
+
+DynamicObject DoWhileExpression::visit(SymbolTable& symbols) {
+ do try {
+ this->body->visit(symbols);
+ }
+ catch(const TerminativeBreakSignal& breakSig) {
+ break;
+ }
+ catch(const TerminativeContinueSignal& continueSig) {
+ continue;
+ } while(this->expression->visit(symbols).booleanEquivalent());
+
+ return {};
+}