1.判断语句
单条件判断:
let mut x=128;//声明一个32位整数x=512;//修改变量原来的值为新值//如果 ... 否则//判断变量x是否大于256if x>256 {println!("x>256,x={}",x);}else {println!("x<256,x={}",x);}let is_ok:bool = true;//rust中不用()if is_ok {println!("is_ok:{}",is_ok);}//使用表示式计算的值作为条件let a=1;if a !=0 {println!("条件成立!!!");}
多条件判断:
//多个条件判断let ret=123;if ret == 1 {println!("条件成立:{}",ret);}else if ret == 2 {println!("条件成立:{}",ret);}else if ret == 3 {println!("条件成立:{}",ret);}else {println!("条件不匹配:{}",ret);}
判断语句作为表达式使用:
//条件作为表达式使用let isRet = true;//整数使用let by_ret = if isRet { 123} else {456};//字符串使用,指向字符串地址let byStr:&str = if isRet { "Yes"} else {"No"};println!("Str:{},Ret:{}",byStr,by_ret);
2.循环语句
//循环条件let mut count:i8=0;//只输出10次loop {if count==10 {break;}println!("一直打印...");count +=1;}
循环语句作为表达式使用:
//循环作为块使用let mut tmp_count:i8=0;let mut tmpRet=0;//变量作为循环返回结果时不要指定类型let x5count = loop {//如果循环5次就退出循环if tmp_count == 5 {break;}//1*5 + 2*5 + 3*5 + 4*5 = 50tmpRet += tmp_count * 5; //每次乘5tmp_count+=1;};println!("tmpRet:{}",tmpRet);
循环嵌套:
//循环嵌套let mut i=0;let mut j=0;//增加循环标志'out_loop: loop {i+=1;println!("i:{}",i);if i==10 { break; }loop {j+=1;if j==5 {break 'out_loop;//内循环跳出到外循环}println!("j:{}",j);}}
while循环:
//while循环使用let mut times = 5;while times >0 {println!("==={}",times);times-=1;}
for循环使用:
//for循环使用let arr = [1,2,3,4,5,6,7,8,9];//遍历数组for v in arr {println!("for循环:{}",v);}//范围遍历,反转for v in (1..21).rev() {println!("for循环反转===:{}",v);}
完整示例代码:
fn main() {println!("RUST语言流控制");let mut x=128;//声明一个32位整数x=512;//修改变量原来的值为新值//如果 ... 否则//判断变量x是否大于256if x>256 {println!("x>256,x={}",x);}else {println!("x<256,x={}",x);}let is_ok:bool = true;//rust中不用()if is_ok {println!("is_ok:{}",is_ok);}//使用表示式计算的值作为条件let a=1;if a !=0 {println!("条件成立!!!");}//多个条件判断let ret=123;if ret == 1 {println!("条件成立:{}",ret);}else if ret == 2 {println!("条件成立:{}",ret);}else if ret == 3 {println!("条件成立:{}",ret);}else {println!("条件不匹配:{}",ret);}//条件作为表达式使用let isRet = true;//整数使用let by_ret = if isRet { 123} else {456};//字符串使用,指向字符串地址let byStr:&str = if isRet { "Yes"} else {"No"};println!("Str:{},Ret:{}",byStr,by_ret);//循环条件let mut count:i8=0;//只输出10次loop {if count==10 {break;}println!("一直打印...");count +=1;}//循环作为块使用let mut tmp_count:i8=0;let mut tmpRet=0;//变量作为循环返回结果时不要指定类型let x5count = loop {//如果循环5次就退出循环if tmp_count == 5 {break;}//1*5 + 2*5 + 3*5 + 4*5 = 50tmpRet += tmp_count * 5; //每次乘5tmp_count+=1;};println!("tmpRet:{}",tmpRet);//循环嵌套let mut i=0;let mut j=0;//增加循环标志'out_loop: loop {i+=1;println!("i:{}",i);if i==10 { break; }loop {j+=1;if j==5 {break 'out_loop;//内循环跳出到外循环}println!("j:{}",j);}}//while循环使用let mut times = 5;while times >0 {println!("==={}",times);times-=1;}//for循环使用let arr = [1,2,3,4,5,6,7,8,9];//遍历数组for v in arr {println!("for循环:{}",v);}//范围遍历,反转for v in (1..21).rev() {println!("for循环反转===:{}",v);}
}
输出: