当前位置: 首页 > wzjs >正文

长沙网站 建设推广世云网络怎样才能创建网站

长沙网站 建设推广世云网络,怎样才能创建网站,太原网站定制,网站服务器错误怎么解决rust的控制语句和大部分语言没有什么区别,都是熟悉的for,while,loop,if。 比较不同的是,在绝大部分非常流行的语言中都有的switch,rust是没有的。 诸如c/c,java,javascript,c#。连PL/SQL都有case when语句。 一、基本的for、while、if&…

rust的控制语句和大部分语言没有什么区别,都是熟悉的for,while,loop,if。

比较不同的是,在绝大部分非常流行的语言中都有的switch,rust是没有的。

诸如c/c++,java,javascript,c#。连PL/SQL都有case when语句。

一、基本的for、while、if,loop

示例-for,while,loop,if

复制代码

/**学习控制流条件  if循环  for,loop,while注意:for有各种各样的实现方式
*/
use std::io;fn main() {println!("请输入你的年龄");let mut age = String::new();io::stdin().read_line(&mut age).expect("读取失败");let age: u32 = age.trim().parse().expect("请输入一个数字");let mut desc = String::new();let mut total: u32 = 0;//1.0 测试 if ,else ifif (age < 20) {println!("你是{}岁,还年轻", age);total = cal_young(age);} else if (age < 70) {println!("你是{}岁,正当壮年,是国家和家庭栋梁", age);total = cal_strong(age);} else {println!("你是{}岁!老骥伏枥,志在千里;壮士暮年,烈心不已", age);total = cal_old(age);}//1.1 测试if 条件表达式赋值//rust的函数和许多语句中,如果最后一个语句不带分号,往往表示返回值desc = if age < 70 {"壮年".to_string()} else {"老年".to_string()};println!("{}岁,属于{}", age, desc);println!("总数={}", total);//for 循环比较多实现方式// a. in [] array  ,例如  in [1,2,3]// b. in range   ,例如  in (1..10),但10不在内if (age <= 50) {let fib: u32 = calFb(age);println!("{}的斐波那契值={}", age, fib);}test_for_with_array();test_for_with_tuple();
}//for循环-数组
fn test_for_with_array() {println!("for遍历数组");for i in [1, 2, 3, 10] {println!("数组元素:{}", i);}
}//for循环-元组,..
//使用..的时候,两边带不带()都是一样的。带()主要是为了构建一个对象,便于左其它操作
fn test_for_with_tuple() {for i in (1..5) {println!("{}", i);}for i in 6..10 {println!("{}", i);}//倒数//for i in (1..10).rev() {println!("倒数:{}", i);}
}fn cal_young(a: u32) -> u32 {let mut total: u32 = 0;//测试for循环//注意 写成 n..m 那么上限是不会计算在内的for i in 1..a + 1 {total += i;}return total;
}fn cal_strong(a: u32) -> u32 {let mut i = 0;let mut total: u32 = 0;//测试loop,必须内部加break;loop {i = i + 1;total = total + i;if (i == a) {break;}}return total;
}fn cal_old(a: u32) -> u32 {let mut total: u32 = 0;let mut i = 0;//测试whilewhile i < a {i = i + 1;total = total + i;}return total;
}
/**计算斐波那契,但是这个不要用于计算太大的值,因为这个递归算法极其低效计算50以内还马马虎虎注意:如果有错误,那么非蛇形的命名方式会被编译器提示出来
*/
fn calFb(n: u32) -> u32 {if (n == 1) {return 1;} else if (n == 2) {return 1;} else {return calFb(n - 1) + calFb(n - 2);}
}

复制代码

 这其中for的格式比较多,许多语言都有这种现象,例如JAVA。

二、rust的for可以的格式

for i in n.m   使用它使用 std::iter::Range 或 std::iter::RangeInclusive 迭代器

for i in (n..m).rev()

for i in [x,y,z]

其它还有基于map,向量,枚举的便捷方式这些对象元素的方式

对于map,向量、枚举的,后续补充例子。

三、match而不是switch

在有关书籍中,第一个例子就有match。

match guess.cmp(&secret_str){Ordering::Less => println!("偏小"),Ordering::Greater => println!("偏大"),Ordering::Equal => {println!("恭喜,你赢了!你总共花费了{}次",try_times);is_ok=true;}
};

按照文档的描述,rust的match是一个比较奇特的东西。

match和JAVA17以上的switch还是有一定相似度的,也不知道谁抄谁。

在rust的书本上<<Rust权威指南>>把match吹了一番。

闲话少扯,还是先掌握match的一些基本内容吧。

四、小结

和大部分语言差不多,rust的控制结构没有特别的,这很好,因为它奇怪的语法已经够多了。

和现代大部分的语言语言一样,rust也力图让for循环变得更加方便一些。

 

关注灵活就业新业态,关注公账号:贤才宝(贤才宝https://www.51xcbw.com) ​ 

http://www.dtcms.com/wzjs/551596.html

相关文章:

  • 网站建设自查合肥做网站加盟
  • 重庆网站建公司大全网站建设 网络科技公司
  • 网站管理与维护做网站与做网页的区别
  • 企业电子商务网站有哪些做网站需要 的文档
  • 济宁网站建设优化亿峰wordpress企业主题免费
  • 苏ICP备网站建设中企动力无锡公众号涨粉
  • 网站主页图片怎么换北京seo关键词优化收费
  • 白狐网站建设网站开发实训内容
  • 怎么优化网站源码关键词网站建设与网页设计从入门到精通 pdf
  • 做国外lead应该做什么网站陕西省交通集团建设网站
  • 北京好用的h5建站百度查重入口免费版
  • 做商务网站要多少钱手机版网站怎么上传
  • 网站建设终端是什么C语言做网站需要创建窗口吗
  • 网站开发培训实训公司网站与营销网站在栏目上的不同
  • 兵团建设环保局网站网上医疗和医院网站建设制作
  • 福州企业网站建设专业服务上海高端品牌网站建设
  • 精品课程网站建设毕业设计论文怎么做正规网站
  • t恤在线设计网站app免费下载
  • 做最优秀的自己演讲视频网站网络工程属于计算机类吗
  • 做影视网站难吗专门做微信小程序的公司
  • 阿里巴巴网站建设缺点白银市城县建设局网站
  • 个人备案网站会影响吗网页设计和网站建设实战大全
  • 购买一个网站需要多少钱高端网站设计上海网站建设上海
  • 学了lamp做网站就足够了吗南昌网站seo外包服务
  • 网站开发文档撰写模板旅游网站建设网
  • 湖南平台网站建设哪家好帝国网站管理系统安装连接不上数据库
  • 福州网红外包网站怎么做seo
  • 论坛型网站开发山东机关建设网站
  • 做网站的设计文档怎么做牛商网网站建设多少钱
  • pc网站原型设计工具免费化妆品网站模板下载