PowerShell教程(2)——控制结构

如题所述

往期教程

PowerShell教程(0)——简介 PowerShell教程(1)——数据类型与变量

一、if语句

若条件为真,则执行后面的语句。

含有else的if语句:

若条件为真,则执行if后面的语句,否则执行else后面的语句。

含有elseif的if语句:

若条件1为真,则执行if后面的语句,若条件2为真,则执行条件2的elseif后面的语句……若所有条件都不成立,则执行else后面的语句。

示例:

上述程序输出为1。

二、switch语句

作用是寻找匹配switch后面的表达式的数值,然后执行数值后面的所有语句,意思是只要匹配一个数值,会把匹配数值及其后面的数值对应的语句也一并执行。但实际上似乎不是所有版本的PowerShell都会有这样的现象,我的版本就只执行匹配数值后面的大括号内的语句。

如果向switch后面括号里的表达式提供一个数组,它将检查数组中的每一项。

switch语句和if语句一样,都可以给变量赋值。

示例:

switch语句也可以用于匹配条件。条件表达式用“{}”括起,并以$PSItem代表待匹配表达式。

三、for语句

作用是先计算一次表达式1,再判断循环条件,然后执行后面的语句,语句执行完后计算表达式2,然后再次判断条件,执行后面的语句和表达式2,直至循环条件不成立。

示例:

四、foreach语句

作用是依次把数组、ArrayList或其他对象的数值依次赋给变量并执行下面的语句。

示例:

五、while语句

作用是先检查条件是否成立,然后再执行语句至条件不成立。

示例:

六、do-while语句

作用是先执行一次语句,再判断条件是否成立。若不成立则继续执行语句直至条件成立。

示例:

七、do-until语句

do-until语句和do-while语句基本一样,区别只是do-until语句是条件不成立时执行循环,直至条件成立。

示例:

八、换行

PowerShell的换行符是“`”,表示换行书写同一个命令。例如:

可以把多条命令写在一行,命令之间用分号分隔。例如:

九、综合运用:顺序表插入、删除与查询

线性表是n个数据元素的有限序列,第一个元素没有前驱元素,最后一个元素没有后继元素,其余元素都是首尾相接,且只有一个前驱元素和后继元素。

线性表的存储方式有顺序存储和链式存储。顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中。采用这种存储方式的线性表也称为顺序表。数组的元素就存储在一组地址连续的存储单元中,因此可以使用数组来模拟顺序表。

(一) 顺序表的插入

顺序表插入元素的过程是,把待插入位置及其后的元素向后移动一个存储单元,然后把待插入元素写入到插入位置。

(二) 顺序表的删除

顺序表删除元素的过程是,把待删除元素所在位置后面的所有元素向前移动一个单位。

但是这里有个问题,虽然待删除元素是被删除了,但是数组的大小还是不变,还是输出原来大小的数组。

那怎么办呢?我们可以使用一个对象,其中有存储顺序表的数组及其当前使用的存储空间大小和当前使用的数组长度。在删除时,存储空间大小不变,当前使用的数组长度减1。插入时,先检查存储空间大小是否小于或等于当前使用的数组长度,如果是,则存储顺序表后面连接上任意元素(也就是分配新的内存空间),存储空间大小和当前使用的数组长度加1。

(三) 顺序查找

顺序查找按照序列原有顺序对数组进行遍历并比较,找出待查元素。

(四) 二分查找

二分查找法要求线性表的元素排好序。二分查找法是把数据分为两等份,再比较待查数值与中间值的大小。如果待查数值小于中间值,可确定待查数据在前半部分。如果待查数值大于中间值,可确定待查在后半部分。如果待查数值等于中间值,则查询成功。若当前数组已被分割至长度为1,则中间值就是当前数组的元素,若依然不能匹配,则查找失败。

(五) 插值查找

插值查找是二分查找的改进版。插值查找也要求数据有序。在数据分布均匀的情况下,插值查找效率较二分查找好,但在数据分布不均匀的情况下则未必。

插值查找的基本思路和二分查找类似,只是中间值的计算方法不同。插值查找中间值的计算方法是$mid = $low + [int](($val - $A[$low]) * ($high - $low) / ($A[$high] - $A[$low]))。

十、综合运用:排序算法

主流的排序算法有很多种,包括冒泡排序、选择排序、插入排序、希尔排序、堆排序、快速排序、归并排序。这里讲解比较简单的冒泡排序、选择排序、插入排序和希尔排序。

(一) 冒泡排序

冒泡排序的基本思想是,比较数列中相邻的两个数字,若不符合次序要求,则交换这两个数字。假设数列的长度为len,因为数列中数字最多前后移动(len - 1)次(即从数列开头到数列结尾或从数列结尾到数列开头),所以重复执行上述过程(len - 1)次,数列就是有序的。

(二) 选择排序

选择排序的基本思想是,把当前位置的数字与后面的数字比较,若当前数字比后面某一个数字小,则和后面的数字交换,最后,当前位置的数字就是从当前位置到数列结尾中所有数字的最大值。从数列第一个元素开始,重复上述过程,直至倒数第二个元素与最后一个元素比较,则算法结束。

(三) 插入排序

插入排序的基本思想是,把某一个数字插入到前面已排好序的列表中。插入的方法是,从这个数字开始,依次与前面的数字比较和交换,直至前面的数字与数字符合次序要求。

(四) 希尔排序

希尔排序是一种改进的插入排序。希尔排序的思想是选择特定间隔的数字组成一组进行插入排序,然后缩小间隔再重复插入排序,直至间隔小于1。

由于PowerShell从浮点数到整数的转换是自动四舍五入的,所以需要单独写一个没有四舍五入的转换函数。当然你也可以直接用[Math]::Floor函数。

下面再给出希尔排序的代码

下一篇: PowerShell教程(3)——函数
温馨提示:内容为网友见解,仅供参考
无其他回答

PowerShell教程(2)——控制结构
(二) 选择排序 选择排序的基本思想是,把当前位置的数字与后面的数字比较,若当前数字比后面某一个数字小,则和后面的数字交换,最后,当前位置的数字就是从当前位置到数列结尾中所有数字的最大值。从数列第一个元素开始,重复上述过程,直至倒数第二个元素与最后一个元素比较,则算法结束。(三) 插入排...

PowerShell使用教程(转)
PowerShell的使用步骤包括启动PowerShell(可以通过在CMD中执行“powershell”、通过开始菜单搜索启动或从附件中启动来实现),在启动后,用户可以利用“Get-Help”命令查看帮助文档,使用“Get-Command”命令查找可用命令,根据任务需求使用“Get-”或“Stop-”等前缀缩小搜索范围,最后通过输入命令及其参数执行...

PowerShell入门教程 语法、环境
环境变量如`$env:JAVA_HOME`可以设置和查看,脚本执行策略设置也很重要,比如`Set-ExecutionPolicy RemoteSigned`。学习如何在不同脚本间调用,如在PowerShell中运行.bat脚本或VBS脚本。条件操作符和if、switch语句用于控制程序流程,例如`if ($num -gt 90) {"此数大于50"}`。循环结构,如`foreach`和...

精通WindowsPowerShell脚本编程目录
1.1 安装Windows PowerShell,让你的系统具备强大的命令行工具。1.2 通过交互学习,理解如何与PowerShell外壳进行有效沟通。1.3 介绍cmdlet,这是PowerShell的核心组件,执行各种任务。1.4 配置PowerShell环境,确保安全和效率。1.5 探索安全问题,了解如何妥善管理权限和安全策略。1.6 学习cmdlet的提供...

PowerShell教程(1)——数据类型与变量
= 值}表示,通过键值对操作和查找。自定义对象是通过PSCustomObject创建的,可以添加和修改属性。输入输出功能如Read-Host获取用户输入,Write-Host用于输出消息,Clear-Host清空命令行。接下来,我们将深入学习PowerShell的控制结构,继续探索更多功能。继续前进到PowerShell教程(2)——控制结构。

如何使用PowerShell在Windows上解锁多个文件
但是,如果您有多个文件需要解锁怎么办?一项一项地执行此操作可能会很乏味。或者,您可以执行单个 PowerShell 命令来取消阻止目录中的多个文件。这是您需要使用的命令结构:dir [path] | unblock-file -confirm只需将方括号中的路径替换为包含被阻止文件的目录的文件路径即可。您可以通过右键单击目录并选择...

Win101909系统以管理员身份运行PowerShell的教程
方法步骤:1、打开设备,点击左下角的“Win”徽标;2、然后,在新页面中找到“PowerShell”;3、右键点击“PowerShell”,再选取“以管理员身份运行”即可。以上就是Win101909系统以管理员身份运行PowerShell的教程,大家可以采取上面的方法来操作吧。

14915怎么使用PowerShell计算器算数据-搜狗输入法
(2)PowerShell对于数字与括号之间的乘号省略规则不能识别,故乘号“*”不能省略。如:5(7.81-3.14),必须为:5*(7.81-3.14);(3)PowerShell不能识别计算机容量单位外的其它单位。1、现在我们来运算 3.14*2.5+5(1-2\/5), 在Windows PowerShell窗口中输入 3.14*2.5+5*(1-...

win7系统利用管理员账户启动Windows PowerShell窗口的操作方法_百度知 ...
方法一、在win7系统任务栏中的“Windows PowerShell”图标上我们点击鼠标右键,接着选择“以Administrator管理员身份运行 Windows PowerShell”即可。方法二:如果大家想要在所有受支持的Windows 版本中使用管理员特权开启 Windows PowerShell(或 Windows PowerShell ISE)的话,那么好按照下面的步骤操作:1、...

如何使用PowerShell命令创建Win10系统还原点教程
在Win10开始按钮上点击右键,选择“Windows PowerShell(管理员)”打开“管理员: Windows PowerShell”窗口,下面我们就可以输入PowerShell命令来创建系统还原点了。根据命令的复杂程序有两种方式,第一种命令比较简短,有个应答过程,算是傻瓜化的吧;第二种则是带有完整参数的命令。下面MS酋长分别来介绍一...

相似回答
大家正在搜