PowerShell编程基础

文章目录

    • 变量与运算
    • 函数
    • 判断
    • 分支语句
    • 循环

对于一门编程语言来说,只需了解如何创建变量和如何进行计算,最后再了解如何进行判断,就可以写程序了。而为了避免重复操作,还需要实现函数的封装,以及循环语句。本文就介绍Powershell中的变量、函数以及分支、循环结构等编程内容。

变量与运算

在PS中,$后接字符,即可创建一个有效的变量名,这些变量可以被赋值,也可以进行计算,示例如下

$1 = 4
$α = 5
$a=5; $b=6
$a - $b     # -1
$a -gt $b   # False

PS中常见的运算符如下

类别运算符
计算【+】【-】【*】【/】;取模【%】
赋值赋值【=】;自增【+=】,减乘除取模同理
比较等于【-eq】;不等于【-ne】
大于【-gt】;大于等于【-ge】
小于【-lt】;小于等于【-le】
逻辑与【AND】;或【OR】;非【NOT】;异或【xor】

函数

PS中,通过function来标识一段函数,并用return传回返回值。PS中的函数有两种调用方式,一种是在括号中输入参数,另一种是把函数看作命令,与参数通过空格隔开,示例如下

function squared($x){return $x*$x
}squared(3.5)   # 12.25
squared 3.5    # 12.25

PS支持递归函数,例如,想实现一个阶乘函数,实现 5 ! = 120 5!=120 5!=120,只需下面三行代码即可,其中if和else是PS中的判断语句。

function fac($n){if($n -le 1){return 1}else{return (fac($n-1)) * $n}
}
fac(5)      # 120

判断

PS中也通过if else语句来进行判断,if这个关键字,几乎已经统治了所有的编程语言,示例如下

function score($x){if($x -le 60) {echo 'Garbage'} elseif($x -le 80) {echo 'Ordinary'} else {echo 'Excellent'}
}score(55)      # Garbage
score(65)      # Ordinary
score(95)      # Excellent

函数逻辑为

  • 函数检查$x是否小于或等于 60 60 60。如果是,那么输出 ‘Garbage’,意味着分数非常差
  • 如果$x大于 60 60 60 但小于或等于 80 80 80,那么输出 ‘Ordinary’,意味着分数一般。
  • 如果$x大于 80 80 80,那么输出 ‘Excellent’,意味着分数非常好。

分支语句

PS提供了分支语句switch,示例如下

function whichDay($day){switch($day){7{echo "星期日"}6{echo "星期六"}default{echo "工作日"}}
}whichDay(7)    # 星期日
whichDay(5)    # 工作日

其逻辑是

  • 如果 $day 等于 7,函数将输出 “星期日”。
  • 如果 $day 等于 6,函数将输出 “星期六”。
  • 如果 $day 不等于 7 也不等于 6,则默认输出"工作日"。

循环

PS提供了while、do-while和for循环,并且支持通过continue和break来调控循环的进行。下面用这三种循环,实现一个阶乘函数。

  • while版本
function facWhile($n){$i = 1; $fac = 1while($i -le $n){$fac *= $i$i += 1}return $fac
}
  • do-while版本
function facDo($n){$i = 1; $fac = 1do{$fac *= $i$i += 1}while($i -le $n)return $fac
}
  • for循环
function facFor($n){for($i=$n-1; $i -ge 1; $i--){$n *= $i}return $n
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

富格林:摸清诱导受害原因正规防范

富格林悉知,在交易中,亏损和盈利是并存的,不存在永远的盈利,也没有长久的亏损,想要有效的减少亏损增加盈利,投资者需要正规的做单投资,增加盈利的机会。但有一些投资者对于技术的掌握是好的&…

git最常用的命令与快捷操作说明

git最常用的命令与快捷操作说明 最常用的git三条命令1、git add .2、git commit -m "推送注释"3、git push origin 远程分支名:本地分支名 其他常用命令本地创建仓库分支删除本地指定分支切换本地分支合并本地分支拉取远程仓库指定分支代码过来合并推送代码到远程分支…

Android客户端自动化UI自动化airtest从0到1搭建macos+脚本设计demo演示+全网最全最详细保姆级有步骤有图

iOS客户端自动化UI自动化airtest从0到1搭建macosdemo演示-CSDN博客 一、基础环境 1. 安装jdk 选择jdk8 如果下载高版本 可能不匹配会失败 下载.dmg文件 苹果电脑 | macOS | jdk1.8 | 环境变量配置_jdk1.8 mac-CSDN博客 Java Downloads …

Leetcode第88题:合并两个有序数组

Leetcode第88题 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 原题 代码实现 class Solution…

【面试题】数据底层原理:Elasticsearch写入流程解析

前言:本篇博客将介绍Elasticsearch的数据底层原理,涉及数据写入的过程以及相关概念。我们将深入探讨buffer、translog、refresh、commit、flush和merge等核心概念,帮助您更好地理解Elasticsearch的数据存储机制。 写入数据的基本过程 Elast…

vue 内嵌第三方网页

需要将另一个系统嵌套到当前网页中 一、frame 方法一就是通过html的标签 iframe 实现网页中嵌入其他网站 标签属性 属性含义src嵌套的网页地址width设置嵌套网页的宽度,单位为像素height设置嵌套网页的高度,单位为像素frameborder控制嵌套的网页是否…

<QT基础(2)>QScrollArea使用笔记

项目需要设置单个检查的序列图像预览窗口,采用QScrollArea中加入QWidget窗口,每个窗口里面用Qlabel实现图像预览。 过程涉及两部分内容 引入QWidget 引入label插入图像(resize) 引入布局 组织 scrollArea内部自带Qwidget&#…

如何制作组件模块化

制作组件,先要观察设计搞如果有相同的组件那就把相同的部分提取出来,然后通过,数据判进行,单独的处理,例如 react 函数 ,插槽, vue 插槽,或者根据数据的传输值践行判断 csss 值进行逻…

[项目实践]---RSTP生成树

[项目实践] 目录 [项目实践] 一、项目环境 二、项目规划 三、项目实施 四、项目测试 |验证 ---RSTP生成树 一、项目环境 Jan16 公司为提高网络的可靠性,使用了两台高性能交换机作为核心交换机,接入层交 换机与核心层交换机互联,形成冗…

MATLAB 统计滤波(去除点云噪声)(55)

MATLAB 统计滤波法(去除点云噪声)(55) 一、算法介绍二、算法实现1.原理2.代码一、算法介绍 点云统计滤波,是一种常用的去噪点方法,原始的点云数据中包含多种噪点,无法直接使用,往往需要通过一些方法去除噪点,而统计滤波在这方面的使用非常广泛常见,下面是去噪点后的…

P21:public class和class的区别

在一个Java源文件中,可以定义多个class 每个class类会生成对应的xxx.class字节码文件 在Java源文件中,public class不是必须的 当Java源文件中有public class类时,public class类只能有一个,并且该源文件的名字必须与公开类名…

STM32CubeIDE基础学习-USART串口通信实验(中断方式)

STM32CubeIDE基础学习-USART串口通信实验(中断方式) 文章目录 STM32CubeIDE基础学习-USART串口通信实验(中断方式)前言第1章 硬件介绍第2章 工程配置2.1 工程外设配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 …

vue3封装Element分页

配置当前页 配置每页条数 页面改变、每页条数改变都触发回调 封装分页 Pagination.vue <template><el-paginationbackgroundv-bind"$attrs":page-sizes"pageSizes"v-model:current-page"page"v-model:page-size"pageSize":t…

AP5199S LED平均电流型恒流驱动IC 0.01调光 景观舞台汽车灯驱动照明

说明 AP5199S 是一款外围电路简单的多功能平均电流型 LED 恒流驱动器&#xff0c;适用于宽电压范围的非隔离式大功率恒流 LED 驱动领域。芯片 PWM 端口支持超小占空比的 PWM 调光&#xff0c;可响应 60ns 脉宽。为客户提供解决方案&#xff0c;限度地发挥灯具优势&#xff0c;…

重拾C++之菜鸟刷算法第16篇 --- 动态规划(总结篇)

动态规划 五部曲 确定dp数组的含义递推公式正确进行初始化遍历顺序举例推到dp数组 01 背包问题 第一种&#xff1a;填满背包所需的最大价值 有n件物品和一个最多可以背重量为w的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i]&#xff0c;所有物品只能…

每日OJ题_子序列dp⑤_力扣1218. 最长定差子序列

目录 力扣1218. 最长定差子序列 解析代码 力扣1218. 最长定差子序列 1218. 最长定差子序列 难度 中等 给你一个整数数组 arr 和一个整数 difference&#xff0c;请你找出并返回 arr 中最长等差子序列的长度&#xff0c;该子序列中相邻元素之间的差等于 difference 。 子序…

商品说明书的制作工具来啦,用这几个就够了!

商品说明书是用户了解产品特性、性能、使用方法的重要途径。一个明确、易懂的商品说明书&#xff0c;可以显著提升用户体验&#xff0c;进而提升产品的销量。但我们都知道&#xff0c;制作一份高质量的说明书并不容易&#xff0c;需要仔细设计、计划和撰写。幸运的是&#xff0…

math模块篇(七)

文章目录 math.dist(p, q)math.hypot(*coordinates)math.sin(x)math.tan(x)math.degrees(x)math.radians(x)math.acosh(x)math.asinh(x)math.atanh(x) math.dist(p, q) 在Python的math模块中&#xff0c;并没有一个名为math.dist(p, q)的函数。可能你是想要计算两点p和q之间的…

LeetCode题练习与总结:字母异位词分组

一、题目描述 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", &quo…

rabbitMQ的基础操作与可视化界面

当你安装好RabbitMq时&#xff0c;可以 尝试一下&#xff0c;这些命令 启动rabbitMQ服务 #启动服务 systemctl start rabbitmq-server #查看服务状态 systemctl status rabbitmq-server #停止服务 systemctl stop rabbitmq-server #开机启动服务 systemctl enable rabbitmq-…