Expression
if (bool-expr) {
do_something();
} else {
do_else_something();
}
Loops
module my_addrx::Loops
{
//lets find the sum of first N natural numbers using while and infinite loop
//using while loop
fun sum_using_while(n:u64) :u64
{
let sum=0;
let i:u64=1; //setting counter to 1
while(i <= n) //This Loop will run until the expression inside the round brackets is valid
{
sum=sum+i;
i=i+1; //incrementing the counter
}; //while is an expression therefore it should be end with a semicolon.
sum //you can also return in functions like this.
}
//using for loop
fun sum_using_for(n:u64) :u64
{
let sum=0;
for (i in 1..(n+1)) //range -> from 1 to n
{
sum=sum+i;
}; //for is an expression therefore it should be end with a semicolon.
sum //you can also return in functions like this.
}
//using infinite loop
fun sum_using_loop(n:u64) :u64
{
let sum=0;
let i:u64=1;
loop
{
sum=sum+i;
i=i+1;
if(i>n)
break; //break statement terminates the loops
};
sum
}
#[test_only]
use std::debug::print;
#[test]
fun testing()
{
let sum = sum_using_while(10);
print(&sum);
let sum = sum_using_loop(10);
print(&sum);
let sum = sum_using_for(10);
print(&sum);
}
}