流程控制语句
- 介绍GS中的if-else switch ?: for while等流程控制语句的语法
- 顺带介 绍一下GS中一个defer语句的用法。
一般流程控制语句大体分成两部分:一是判断语句,二是循环语句。我们的GS中有一个defer语句, 因为其功能跟流程控制语句有点相似,所以在这篇文档结尾还会介绍一下defer语句的基本使用方法。
判断语句
判断语句主要包含if-else,?:和switch三种类型
if-else型
if-else型判断语句又分成三种不同的使用方式
if
if语句基本语法:
if(boolean_expression) // 如果boolean_expression = true, 就执行函数体
{
// execute body
}
if-else
if-else语句基本语法:
if(boolean_expression) // 如果boolean_expression = true, 就执行body1,跳过else,否则执行body2
{
// execute body1
}
else
{
// execute body2
}
if...else if...else
if...else if...else语句基本语法:
if(boolean_expression_1) // 从上往下,如果boolean_expression_x = true, 就执行body_x,跳过下面的else if和else。
{
// execute body1
}
...
else if(boolean_expression_m)
{
// execute body_m
}
...
else
{
// execute bodyn
}
嵌套使用if-else
if-else型支持多层嵌套使用, 嵌套型if-else语句基本语法:
if(boolean_expression1)
{
if(boolean_expression2)
{
...
}
...
else
{
...
}
}
else if
{
if(boolean_expression3)
{
...
}
}
else
{
...
}
?:型
三目型判断语句与if-else型语句很相似,两者可以相互转换,但三目型判断语句相对更简洁(只要一行)。
:?语句基本语法:
boolean_expression ? expression1 : expression2 // 如果boolean_expression = true,则执行expression1,否则执行expression2
举个例子:
int a = 0, b = 1; // a = (a和b中的最大值)
if(a > b)
a = a;
else
a = b;
等价于:
int a = 0, b = 1;
a = a > b ? a : b;
但是后者更加简洁明了。