1.判断语句
单条件判断:
let mut x=128;//声明一个32位整数
x=512;//修改变量原来的值为新值
//如果 ... 否则
//判断变量x是否大于256
if 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 = 50
tmpRet += tmp_count * 5; //每次乘5
tmp_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是否大于256
if 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 = 50
tmpRet += tmp_count * 5; //每次乘5
tmp_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);
}
}
输出: