Julia语言中的关系运算符和逻辑运算符,案例:学生成绩评价系统、猜拳游戏

 逻辑运算符

 

在这里利用三门逻辑写一个猜拳游戏 

function gaygay_play()  
    # 定义游戏规则  
    function judge(player, computer)  
        if player == computer  
            return "平局!"  
        elseif (player == "scissors" && computer == "paper") ||  
               (player == "rock" && computer == "scissors") ||  
               (player == "paper" && computer == "rock")  
            return "你赢了!!"  
        else  
            return "你输了,吊毛!"  
        end  
    end  
  
    ##电脑随机出拳 
    computer_choices = ["scissors", "rock", "paper"]  
    computer_choice = rand(computer_choices)  
  
    # 读取用户的输入  
    println("欢迎来到剪刀石头布游戏!请输入你的选择 (scissors, rock, paper):")  
    player_choice = readline()  
  
    # 检查用户输入是否有效  
    while !(player_choice in ["scissors", "rock", "paper"])  
        println("无效输入,请重新输入你的选择 (scissors, rock, paper):")  
        player_choice = readline()  
    end  
  
    # 判断胜负  
    result = judge(player_choice, computer_choice)  
    println("你的选择是: $player_choice, 电脑的选择是: $computer_choice. 结果: $result")  
end  
  
# 原神启动  
gaygay_play()

 

关系运算符

 

先定义一些变量用于比较 

a = 5  
b = 10  
c = 5  
# 使用 == 运算符检查相等  
println("a == c: ", a == c)  # 输出 true,因为 a 和 c 都等于 5  
println("a == b: ", a == b)  # 输出 false,因为 a 不等于 b  
  
# 使用 != 运算符检查不相等  
println("a != b: ", a != b)  # 输出 true,因为 a 和 b 不相等  
println("a != c: ", a != c)  # 输出 false,因为 a 和 c 相等  
  
# 使用 > 运算符检查大于  
println("a > b: ", a > b)    # 输出 false,因为 a 不大于 b  
println("b > a: ", b > a)    # 输出 true,因为 b 大于 a  
  
# 使用 < 运算符检查小于  
println("a < b: ", a < b)    # 输出 true,因为 a 小于 b  
println("b < a: ", b < a)    # 输出 false,因为 b 不小于 a  
  
# 使用 >= 运算符检查大于等于  
println("a >= c: ", a >= c)  # 输出 true,因为 a 大于等于 c  
println("b >= a: ", b >= a)  # 输出 true,因为 b 大于等于 a  
println("a >= b: ", a >= b)  # 输出 false,因为 a 不大于等于 b  
  
# 使用 <= 运算符检查小于等于  
println("a <= c: ", a <= c)  # 输出 true,因为 a 小于等于 c  
println("b <= a: ", b <= a)  # 输出 false,因为 b 不小于等于 a  
println("a <= b: ", a <= b)  # 输出 true,因为 a 小于等于 b

 来一个学生成绩评价系统

# 定义函数 generate_comment,内部有一个自定义变量 score
function generate_comment(score)    
   
    if score >= 90    
        return "优秀!你的成绩非常出色,继续保持!"    
  
    elseif score >= 80    
        return "良好!你的表现很不错,继续努力!"    
     
    elseif score >= 70    
        return "中等!你还有一些提升的空间,加油!"    
    
    elseif score >= 60    
        return "及格!你需要更加努力学习,提高成绩。"    

    else    
        return "不及格!你个吊毛。"  
    end    
end    
    
# 定义主函数  
function main()    
    # 打印提示用户输入成绩的信息  
    println("请输入你的成绩:")    
    # 读取用户的输入  
    input = readline()    
    # 尝试将用户的输入转换为整数  
    try    
        score = parse(Int, input)    
        # 检查输入的分数是否在0到100之间  
        if score >= 0 && score <= 100    
            # 生成并打印评语  
            comment = generate_comment(score)    
            println("分数:$score,评语:$comment")    
        # 如果输入的分数不在0到100之间,打印错误信息  
        else    
            println("输入的成绩无效,请输入0到100之间的整数。")    
        end    
    # 捕获可能发生的错误,如输入的不是一个有效的整数  
    catch e    
        # 如果错误是因为输入的不是一个有效的整数  
        if e isa ArgumentError     
            println("输入的不是一个有效的整数,请重新输入。")    
        # 如果是其他类型的错误,重新抛出  
        else    
            rethrow(e)    
        end    
    end    
end    
    
# 调用主函数,运行程序  
main()

运行结果

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/424749.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nginx------------缓存功能 ip透传 负载均衡 (六)

一、http 协议反向代理 &#xff08;一&#xff09;反向代理示例:缓存功能 缓存功能可以加速访问&#xff0c;如果没有缓存关闭后端服务器后&#xff0c;图片将无法访问&#xff0c;缓存功能默认关闭&#xff0c;需要开启。 ​ proxy_cache zone_name | off; 默认off #指明调…

SpringCloud-MQ消息队列

一、消息队列介绍 MQ (MessageQueue) &#xff0c;中文是消息队列&#xff0c;字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。消息队列是一种基于生产者-消费者模型的通信方式&#xff0c;通过在消息队列中存放和传递消息&#xff0c;实现了不同组件、服务或系统…

Ajax(黑马学习笔记)

Ajax介绍 Ajax概述 我们前端页面中的数据&#xff0c;如下图所示的表格中的学生信息&#xff0c;应该来自于后台&#xff0c;那么我们的后台和前端是互不影响的2个程序&#xff0c;那么我们前端应该如何从后台获取数据呢&#xff1f;因为是2个程序&#xff0c;所以必须涉及到…

springboot+vue小区物业管理系统

摘 要 随着我国经济发展和城市开发&#xff0c;人们对住房的需求增大&#xff0c;物业管理也得到了发展。但是&#xff0c;基于人工的物业管理仍然是现阶段我国大部分物业管理公司的管理模式&#xff0c;这种管理模式存在管理人员效率低下、工作难度大的问题&#xff0c;同时…

Springboot+vue的医药管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的医药管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

前缀和 刷题笔记

关键在于 构造前缀和数组 类比前n项和 第n项和等于 前n-1项和加上当前项 s[n]s[n-1]a[n]; #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> using namespace std; int n,m; const int N1e5100; int a[N],s[N]; int ma…

适配器模式在微服务的巧妙应用

适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许不兼容的接口之间可以一起工作。适配器模式通常用于将一个类的接口转换成客户端期望的另一种接口&#xff0c;从而使原本因接口不兼容而不能一起工作的类可以一起工作。 适配器模式的…

图书管理系统(使用IO流实现数据的读取和写入)--version4.0

目录 一、项目要求&#xff1a; 二、项目环境 三、项目使用的知识点 四、项目代码 五、项目运行结果 六、项目难点分析 图书管理系统--versions1.0&#xff1a; 图书管理系统--versions1.0-CSDN博客文章浏览阅读981次&#xff0c;点赞29次&#xff0c;收藏17次。本文使用…

代码随想录算法训练营第四十天|139.单词拆分,多重背包介绍,背包问题总结篇!

系列文章目录 代码随想录算法训练营第一天|数组理论基础&#xff0c;704. 二分查找&#xff0c;27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 &#xff0c;209.长度最小的子数组 &#xff0c;59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础&#xff…

创建型模式之原型模式

一、概述 1、工作原理&#xff1a;将一个原型对象传给要发动创建的对象(即客户端对象),这个要发动创建的对象通过请求原型对象复制自己来实现创建过程 2、通过克隆方法所创建的对象是全新的对象&#xff0c;它们在内存中拥有新的地址&#xff0c;每一个克隆对象都是独立的 3…

虚拟线程目前不推荐上生产的个人思考

1. pin 线程引发的问题比预期严重&#xff0c;需要修改的库繁多 截止目前 Java 21 虚拟线程一些比较严重的 Bug&#xff1a; 1. Thread.HoldsLock(Object) 这个方法&#xff0c;如果是虚拟线程调用&#xff0c;会在平台线程获取到锁之后&#xff0c;就算切换虚拟线程&#xf…

JavaScript闭包漏洞与修补措施

请先看下面一段代码 var obj (function () {var sonObj {a: 1,b: 2}return {get: function (v) {return sonObj[v]}}})()可以看出,这是一段很典型的js闭包代码,可以通过obj调用get方法传一个参数,如果传的是a就可以得到闭包内的对象sonObj.a var obj (function () {var sonO…

2024真正有效的苹果mac电脑清理工具CleanMyMac X

一、前言 对于Mac用户来说&#xff0c;电脑卡顿、运行缓慢无疑是一件令人头疼的事情。而市面上的清理软件又五花八门&#xff0c;效果参差不齐&#xff0c;如何才能找到一款真正有效的清理工具呢&#xff1f;今天&#xff0c;我们为大家推荐一款实力派电脑清理软件——CleanMy…

Canvs的js库:Fabric.js简单强大,用于绘制各种图形

Fabric.js是一个用于创建交互式的HTML5 Canvas应用程序的JavaScript库。它提供了一个简单而强大的API&#xff0c;用于在Web浏览器中绘制和操作图形对象。Fabric.js可以用于创建各种图形应用程序&#xff0c;例如绘图编辑器、图像编辑器、流程图、地图和数据可视化等。 官网文…

图像物体的边界- 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 给定一个二维数组M行N列&#xff0c;二维数组里的数字代表图片的像素&#xff0c;为了简化问题&#xff0c;仅包含像素1和5两种像素&#xff0c;每种像素代表一个…

C语言中的字符魔法:大小写转换的艺术

引言 在C语言的世界里&#xff0c;字符处理是一项基础且重要的任务。字符作为编程中最基本的元素之一&#xff0c;承担着信息展示、数据交互等多重角色。特别是在处理文本信息时&#xff0c;字符的转换和识别显得尤为重要。大小写字母的转换就是其中一个常见的需求&#xff0c…

STM32作为SPI slave与主机异步通信

背景 最近被测试提了个BUG&#xff0c;说某款产品在用户按下前面板的按键后&#xff0c;对应的按键灯没有亮起来。前面板跟主机是通过SPI口通信&#xff0c;前面板是从机&#xff0c;从机想要主动发送消息&#xff0c;需要通过GPIO中断来通知主机&#xff1a; 上图前面板是ST…

flurl升级之后没有FlurlNewtonsoftJsonSerializer

新建NewtonsoftJsonSerializer.cs /// <summary> /// ISerializer implementation based on Newtonsoft.Json. /// Default serializer used in calls to GetJsonAsync, PostJsonAsync, etc. /// </summary> public class NewtonsoftJsonSerializer : IJsonSerial…

【CSP试题回顾】202312-1-仓库规划

CSP-202312-1-仓库规划 解题思路 定义结构体和变量&#xff1a; 结构体 MyWareHouse&#xff0c;用来存储每个仓库的索引&#xff08;编号&#xff09;和位置编码。定义了整数 n 和 m&#xff0c;分别代表仓库的数量和位置编码的维数。定义了一个 vector<MyWareHouse> 的…

图解Vivado工程的目录结构

一、目录结构 ​在使用Vivado进行工程设计时&#xff0c;创建工程以及运行工程的过程中都会生成大量的目录和文件&#xff0c;下面图将对目录和文件结构及功能进行一个简单说明。 工程示例图 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 二、参考资料…