Flutter入门Dart语言:控制流语句的基本用法
Posted 小雨青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter入门Dart语言:控制流语句的基本用法相关的知识,希望对你有一定的参考价值。
文章目录
一、前言
在Dart中,控制流语句用于控制程序的执行流程。以下是Dart中主要的控制流语句类型:
if-else:根据布尔表达式有条件地执行代码。
for循环:重复执行一段代码特定次数。
while循环:在给定条件为真时重复执行一段代码。
do-while循环:与while循环类似,但是在评估条件之前至少执行一次代码块。
switch-case:根据值选择要执行的多个代码块之一。
break:提前退出循环。 continue:跳过当前循环迭代并继续下一次迭代。
这些控制流语句可以用于在Dart程序中创建复杂的逻辑和控制执行流程。
“你所拥有的也许只是一份平凡的人生,但你可以用不平凡的态度去面对它。”——李嘉诚
"You may only have an ordinary life, but you can face it with an extraordinary attitude." - Li Ka-shing
二、控制流语句
1.if-else
if-else 语句是一种控制流语句,用于根据一个布尔表达式的值来决定执行哪一段代码。如果布尔表达式的值为 true,则执行 if 语句中的代码块;否则,执行 else 语句中的代码块(如果有的话)。
if-else 语句的基本语法如下:
if (condition)
// true 就走这边
else
// false 就走这边
//else也可以不写
if (condition)
// true 就走这边
实际业务中的代码可能是这样的:
int x = 10;
if (x > 5)
print('x比5大,吧啦吧啦');
else
print('x不如5大,吧啦吧啦');
在使用 if-else 语句时,需要注意以下几点:
- 如果 if-else 语句中的代码块只有一行,那么可以不使用花括号,例如:
if (condition) statement; else statement;
- 如果不需要 else 语句,可以省略它,例如:
if (condition) statement;
- 在编写复合条件时,需要使用逻辑运算符(&&、||、!)来连接多个布尔表达式。
- 如果条件表达式的值不是一个布尔类型,那么需要使用强制类型转换来将其转换为布尔类型。
上面的示例可以写成:
if (x > 5) print('x比5大,吧啦吧啦');
else print('x不如5大,吧啦吧啦');
2.for
for 循环是一种控制流语句,用于重复执行一个代码块特定次数。
for (initialization; condition; increment/decrement)
// code to be executed repeatedly
其中:
initialization
:在循环开始之前执行一次的语句,通常用于初始化计数器等变量。condition
:在每次循环迭代开始时计算的布尔表达式,如果值为 true,则继续执行循环;否则,退出循环。increment/decrement
:在每次循环迭代结束时执行的语句,通常用于增加或减少计数器等变量的值。
一个简单的循环如下:
for (int i = 1; i <= 5; i++)
print(i);
在上面的示例中,循环从变量 i
的初始值 1 开始,每次增加 1,直到 i
的值大于 5 为止。在每次循环迭代中,打印出变量 i
的值。
在使用 for 循环时,需要注意以下几点:
- for 循环中的初始化、条件和增量/减量语句都是可选的,但分号必须存在。
- 可以在循环体内使用 break 和 continue 语句来提前结束循环或跳过当前迭代。
- 可以使用任何类型的表达式作为初始化、条件和增量/减量语句的一部分,包括赋值语句、函数调用和逻辑表达式等。
- 可以嵌套多个 for 循环来构建更复杂的控制流程。
3.while、do-while
Dart中的while循环和do-while循环都是基本的循环结构,它们都可以重复执行一段代码块,但是它们有一些区别。
while循环会先判断循环条件,只有当条件为true时才会执行循环体。而do-while循环会先执行一次循环体,然后再判断循环条件,只有当条件为true时才会继续执行循环体。
while循环的语法如下:
while (condition)
// 循环体
do-while循环的语法如下:
do
// 循环体
while (condition);
其中,condition
是一个布尔表达式,它用于判断循环是否应该继续执行。在while循环中,condition
会在循环体之前进行判断,而在do-while循环中,condition
会在循环体之后进行判断。
while循环示例:
int i = 0;
while (i < 5)
print(i);
i++;
do-while循环示例:
int i = 0;
do
print(i);
i++;
while (i < 5);
上述代码也会输出0到4这五个数字,但是它会先执行一次循环体,然后再判断循环条件。
注意事项:
- 在使用while循环和do-while循环时,一定要注意循环条件的变化,否则可能会导致死循环。
- 在循环体内,应该有一些可以改变循环条件的语句,例如
i++
,否则循环会一直重复执行下去,直到程序崩溃或者手动停止。 - .在使用while循环和do-while循环时,应该谨慎处理循环变量的初始值和循环条件,确保循环能够正确执行。
- 在循环体内,应该尽量避免使用
break
和continue
语句,因为它们可能会导致程序逻辑混乱,不易维护。 - 如果循环体内只有一条语句,可以不加大括号,但是为了代码的清晰可读性,建议加上大括号。
3.switch-case
switch-case语句用于根据不同的值执行不同的操作,它可以代替一些复杂的if-else语句,使代码更加简洁易懂。
switch-case的语法如下:
switch (expression)
case value1:
// 如果expression的值等于value1,执行这里的语句
break;
case value2:
// 如果expression的值等于value2,执行这里的语句
break;
default:
// 如果expression的值不等于任何一个case中的值,执行这里的语句
其中,expression
是要比较的表达式,value1
、value2
等是要比较的值。如果expression
的值等于某个value
,就会执行相应的case
中的语句。如果expression
的值不等于任何一个value
,就会执行default
中的语句。在每个case中,必须包含一个break
语句,否则程序会继续执行下去,直到遇到break
语句或者switch-case语句结束。
下面是一个使用switch-case语句的简单示例,根据输入的字符串输出相应的瑞克和莫蒂的名言:
String character = 'Rick';
switch (character)
case 'Rick':
print('Wubba lubba dub dub!');
break;
case 'Morty':
print('Oh geez, Rick!');
break;
case 'Summer':
print('I hate this planet!');
break;
default:
print('I have no idea who you are!');
注意事项:
- 在switch-case语句中,必须包含一个
default
分支,否则会在某些情况下导致程序错误。 - 每个case中必须包含一个
break
语句,否则程序会继续执行下去,直到遇到break
语句或者switch-case语句结束。 - 在case中可以执行任何语句,包括声明变量和调用函数等。
- 在case中可以使用
continue
语句跳过某个case,但是不建议这样做,因为它可能会导致程序逻辑混乱,不易维护。
4.break、continue
在Dart中,break和continue是用来控制循环的两个关键字。它们的用法如下:
-
break:当循环遇到break语句时,循环会立即停止并退出循环。
-
continue:当循环遇到continue语句时,循环会跳过当前这次循环中continue之后的代码,然后继续下一次循环。
注意:
-
break和continue只能用在循环体内部。
-
在多层嵌套的循环中,break和continue只会影响当前的循环,如果想要退出外层循环,需要使用标签。
下面是一些示例:
- 使用break来退出循环
for (int i = 1; i <= 10; i++)
if (i == 5)
break;
print(i);
- 使用continue来跳过本次循环
for (int i = 1; i <= 10; i++)
if (i == 5)
continue;
print(i);
- 使用标签来退出外层循环
outerloop:
for (int i = 1; i <= 3; i++)
innerloop:
for (int j = 1; j <= 3; j++)
if (i == 2 && j == 2)
break outerloop;
print('$i $j');
- 在switch语句中使用break
在Dart中,switch语句也可以使用break来控制程序流程。当匹配到某个case时,可以使用break来终止switch语句的执行。如果没有使用break,则会继续执行下一个case。
var fruit = 'apple';
switch (fruit)
case 'apple':
print('Selected fruit is apple');
break;
case 'banana':
print('Selected fruit is banana');
break;
case 'orange':
print('Selected fruit is orange');
break;
default:
print('No fruit is selected');
- 在循环语句中使用continue
在循环语句中,可以使用continue来跳过一些不必要的循环。例如,在一个循环中,我们想要跳过某些特定的值,可以使用continue语句来实现。示例代码如下:
for (int i = 1; i <= 10; i++)
if (i % 2 == 0)
continue;
print(i);
三、总结
我们这次学习了在dart中使用常见的控制流语句,如果学习过其他语言,可以发现这部分的规则属于常规操作,如果你是萌新,建议你再线上的DartPad上自己运行一下。
以上是关于Flutter入门Dart语言:控制流语句的基本用法的主要内容,如果未能解决你的问题,请参考以下文章