در زبان های برنامه نویسی یک expression همیشه مقدار بازگشتی دار مثل فراخوانی متد ولی یک statement مقدار بازگشتی نداره مثل حلقه while یا شرط if.
بهترین مثال برای مشخص شدن این تفاوت، ساختار شرط if که statement حساب میشه چون مقدار بازگشتی نداره که این در مقابل ساختار شرط ? : است که expression حساب میشه چون مقدار بازگشتی داره.
معمولا در زبان هایی که از فانکشنال پروگرمینگ پشتیبانی میکنن تمام المان های زبان expression هستند ولی زبان جاوا هم expression دارد هم statement.