流程控制语句

判断语句2–if…else

if(关系表达式) {
语句体1;
}else {
语句体2;
}

执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体1
如果是false就执行语句体2在这里插入图片描述

选择语句–switch

switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}

执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结
束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
在这里插入图片描述
switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。

public static void main(String[] args) {
//定义变量,判断是星期几
int weekday = 6;
//switch语句实现选择
switch(weekday) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("你输入的数字有误");
break;
}
}

case的穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运
行,直到遇到break,或者整体switch结束。

由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。

循环语句1–for
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}

执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况

for(int x = 0; x < 10; x++) {
System.out.println("HelloWorld"+x);
}
}

在这里插入图片描述

**public static void main(String[] args) {**
//1.定义一个初始化变量,记录累加求和,初始值为0
**int sum = 0;**
//2.利用for循环获取1‐100之间的数字
**for (int i = 1; i <= 100; i++) {**    // **i++前面是分号,说明是单独的,++i和i++一样**
//3.判断获取的数组是奇数还是偶数
**if(i % 2==0){**
//4.如果是偶数就累加求和
**sum += i;**
**}
}**
//5.循环结束之后,打印累加结果
**System.out.println("sum:"+sum);
}**

循环语句2–while

初始化表达式①
while(布尔表达式②){
循环体③
步进表达式④
}

执行流程
执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。
在这里插入图片描述


public static void main(String[] args) {
int i = 1;
while(i<=10){
System.out.println("HelloWorld");
i++;
}
}

循环语句3–do…while

初始化表达式①
do{
循环体③
步进表达式④
}while(布尔表达式②);

执行流程
执行顺序:①③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况

在这里插入图片描述


public static void main(String[] args) {
	int x=1;
	do {
		System.out.println("HelloWorld");
		x++;
	}while(x<=10);
}

do…while循环的特点:无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的
循环具有一定的风险性,因此初学者不建议使用do…while循环。

题目:求出1-1000之间的偶数和。

   public static void main(String[] args) {
        int sum = 0;
        for (int i = 1;i <= 1000;i++){
            if (i % 2 == 0){
                sum += i;
            }
        }
        System.out.println(sum);
    }
public static void main(String[] args){
    int sum = 0;  
    int i = 1;
    while (i<=1000){
       if (i % 2 == 0){
       sum += i;
            System.out.println(sum);
       } i++;
    }
  }
   System.out.println("1-1000之间的偶数和"+sum);
}

跳出语句break
使用场景:终止switch或者循环
选择结构switch语句
循环语句
离开使用场景的存在是没有意义的

关于循环的选择建议:
凡是次数确定的场景多用for循环;否则多用while循环。

public static void main(String[] args) {
for (int i = 1; i<=10; i++) {
//需求:打印完两次HelloWorld之后结束循环
if(i == 3){
break;
}
System.out.println("HelloWorld"+i);
}
}

continue
使用场景:结束本次循环,继续下一次的循环

public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
//需求:不打印第三次HelloWorld
if(i == 3){
continue;
}
System.out.println("HelloWorld"+i);
}
}
内容概要:本文详细探讨了双馈风力发电机(DFIG)在Simulink环境下的建模方法及其在不同风速条件下的电流与电压波形特征。首先介绍了DFIG的基本原理,即定子直接接入电网,转子通过双向变流器连接电网的特点。接着阐述了Simulink模型的具体搭建步骤,包括风力机模型、传动系统模型、DFIG本体模型和变流器模型的建立。文中强调了变流器控制算法的重要性,特别是在应对风速变化时,通过实时调整转子侧的电压和电流,确保电流和电压波形的良好特性。此外,文章还讨论了模型中的关键技术和挑战,如转子电流环控制策略、低电压穿越性能、直流母线电压脉动等问题,并提供了具体的解决方案和技术细节。最终,通过对故障工况的仿真测试,验证了所建模型的有效性和优越性。 适用人群:从事风力发电研究的技术人员、高校相关专业师生、对电力电子控制系统感兴趣的工程技术人员。 使用场景及目标:适用于希望深入了解DFIG工作原理、掌握Simulink建模技能的研究人员;旨在帮助读者理解DFIG在不同风速条件下的动态响应机制,为优化风力发电系统的控制策略提供理论依据和技术支持。 其他说明:文章不仅提供了详细的理论解释,还附有大量Matlab/Simulink代码片段,便于读者进行实践操作。同时,针对一些常见问题给出了实用的调试技巧,有助于提高仿真的准确性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值