Functions
Return Values
Return values let a function send a computed result back to the caller.
return value
The expression after `return` becomes the value of the function call.
Return Values
return_values.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
int addShipping(int subtotal, int shipping) {
return subtotal + shipping;
}
int main() {
int subtotal = 30;
int shipping = 5;
int total = addShipping(subtotal, shipping);
std::cout << "subtotal=" << subtotal << std::endl;
std::cout << "shipping=" << shipping << std::endl;
std::cout << "total=" << total << std::endl;
return 0;
}
#include <iostream>
int addShipping(int subtotal, int shipping) {
return subtotal + shipping;
}
int main() {
int subtotal = 12;
int shipping = 5;
int total = addShipping(subtotal, shipping);
std::cout << "subtotal=" << subtotal << std::endl;
std::cout << "shipping=" << shipping << std::endl;
std::cout << "total=" << total << std::endl;
return 0;
}
#include <iostream>
int addShipping(int subtotal, int shipping) {
return subtotal + shipping;
}
int main() {
int subtotal = 45;
int shipping = 5;
int total = addShipping(subtotal, shipping);
std::cout << "subtotal=" << subtotal << std::endl;
std::cout << "shipping=" << shipping << std::endl;
std::cout << "total=" << total << std::endl;
return 0;
}
#include <iostream>
int addShipping(int subtotal, int shipping) {
return subtotal + shipping;
}
int main() {
int subtotal = 30;
int shipping = 0;
int total = addShipping(subtotal, shipping);
std::cout << "subtotal=" << subtotal << std::endl;
std::cout << "shipping=" << shipping << std::endl;
std::cout << "total=" << total << std::endl;
return 0;
}
#include <iostream>
int addShipping(int subtotal, int shipping) {
return subtotal + shipping;
}
int main() {
int subtotal = 30;
int shipping = 8;
int total = addShipping(subtotal, shipping);
std::cout << "subtotal=" << subtotal << std::endl;
std::cout << "shipping=" << shipping << std::endl;
std::cout << "total=" << total << std::endl;
return 0;
}
subtotal ← 30, shipping ← 5
7int main() {8 int subtotal→ 30 = 30; //@subtotal=12, 459 int shipping→ 5 = 5; //@shipping=0, 810 int total = addShipping(subtotal30, shipping5);int addShipping(int subtotal, int shipping)
3int addShipping(int subtotal30, int shipping5) {4 return subtotal30 + shipping5;5}total ← 35
9 int shipping = 5; //@shipping=0, 810 int total→ 35 = addShipping(subtotal30, shipping5);1112 std::cout << "subtotal=" << subtotal30 << std::endl;13 std::cout << "shipping=" << shipping5 << std::endl;14 std::cout << "total=" << total35 << std::endl;15 return 0;16}outputsubtotal=30 shipping=5 total=35
subtotal ← 12, shipping ← 5
7int main() {8 int subtotal→ 12 = 12;9 int shipping→ 5 = 5;10 int total = addShipping(subtotal12, shipping5);int addShipping(int subtotal, int shipping)
3int addShipping(int subtotal12, int shipping5) {4 return subtotal12 + shipping5;5}total ← 17
9 int shipping = 5;10 int total→ 17 = addShipping(subtotal12, shipping5);1112 std::cout << "subtotal=" << subtotal12 << std::endl;13 std::cout << "shipping=" << shipping5 << std::endl;14 std::cout << "total=" << total17 << std::endl;15 return 0;16}outputsubtotal=12 shipping=5 total=17
subtotal ← 45, shipping ← 5
7int main() {8 int subtotal→ 45 = 45;9 int shipping→ 5 = 5;10 int total = addShipping(subtotal45, shipping5);int addShipping(int subtotal, int shipping)
3int addShipping(int subtotal45, int shipping5) {4 return subtotal45 + shipping5;5}total ← 50
9 int shipping = 5;10 int total→ 50 = addShipping(subtotal45, shipping5);1112 std::cout << "subtotal=" << subtotal45 << std::endl;13 std::cout << "shipping=" << shipping5 << std::endl;14 std::cout << "total=" << total50 << std::endl;15 return 0;16}outputsubtotal=45 shipping=5 total=50
subtotal ← 30, shipping ← 0
7int main() {8 int subtotal→ 30 = 30;9 int shipping→ 0 = 0;10 int total = addShipping(subtotal30, shipping0);int addShipping(int subtotal, int shipping)
3int addShipping(int subtotal30, int shipping0) {4 return subtotal30 + shipping0;5}total ← 30
9 int shipping = 0;10 int total→ 30 = addShipping(subtotal30, shipping0);1112 std::cout << "subtotal=" << subtotal30 << std::endl;13 std::cout << "shipping=" << shipping0 << std::endl;14 std::cout << "total=" << total30 << std::endl;15 return 0;16}outputsubtotal=30 shipping=0 total=30
subtotal ← 30, shipping ← 8
7int main() {8 int subtotal→ 30 = 30;9 int shipping→ 8 = 8;10 int total = addShipping(subtotal30, shipping8);int addShipping(int subtotal, int shipping)
3int addShipping(int subtotal30, int shipping8) {4 return subtotal30 + shipping8;5}total ← 38
9 int shipping = 8;10 int total→ 38 = addShipping(subtotal30, shipping8);1112 std::cout << "subtotal=" << subtotal30 << std::endl;13 std::cout << "shipping=" << shipping8 << std::endl;14 std::cout << "total=" << total38 << std::endl;15 return 0;16}outputsubtotal=30 shipping=8 total=38
Follow the Return
subtotalstarts as30.shippingstarts as5.addShipping(subtotal, shipping)adds those two values.- The returned
totalis35. - The program prints
subtotal=30,shipping=5, andtotal=35. | subtotal | shipping | total | | --- | --- | --- | | 30 | 5 | 35 | | 12 | 5 | 17 | | 30 | 8 | 38 |
Exercise: return_values.cpp
Reproduce subtotal=30, shipping=5, and total=35, then change only subtotal to 12 to predict total=17, and change only shipping to 8 to predict total=38.