JAVAEE学习day03,基本的流程控制

本文详细解析了程序设计中的流程控制语句,包括顺序、选择和循环结构。深入讲解了if...else、switch、for、while等语句的执行流程,并对比了它们之间的区别。此外,还介绍了死循环、break的使用场景以及嵌套循环的执行过程。

有问题请留言

 

1.流程控制语句分类

  1)顺序控制语句

  2)选择结构语句

    if...

    if...else...

    if...else if... else...

    for...

    switch...

    while...

    do...while...

    

2.顺序结构如何执行

   从上到下,从左到右

3.if语句三种执行流程

 

/*
if...语句

            if(关系表达式){
                语句体;
            }
            其他语句

                首先判断关系表达式结果true或者false
                如果是true就执行语句体
                如果是false就不执行语句体
                        
                注意:如果不写大括号,if后边紧挨着的第一句才是if的语句体

*/



/*
if...else...语句

            if(关系表达式){
                语句体1;
            }else{
                语句体2;
            }
            
                首先判断关系表达式结果为true还是false
                如果是true就执行语句体1
                如果是false就执行语句体2

*/

/*
if..else if... else...语句

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

                判断语句体1结果,true执行语句体1,false判断关系表达式2
                表达式2结果为true执行语句体2,false判断下一个关系表达式
                如果所有关系表达式均为false,执行语句体n

*/

 

4.if...else和三元运算符的区别

三元运算符的弊端也是必须要有结果,没有结果的只好用if else

 

5.switch语句执行流程及case穿透特性

  

/*
switch(表达式){
        case 常量1:
            语句体1;
            break;
            
        case 常量2:
            语句体2;
            break;
            
        ......
        
        default:
            语句体n+1;
            break;
    }
    
        首先计算得出表达式结果
        依次比较case,如果值对应就会执行相应的语句,遇到break结束
        如果是所有值均不匹配,执行default中的语句体n+1
*/

 

 /* 注意:case穿透 如果在语句体后不加break,在执行完第一条语句之后会立即执行该语句的后的所有语句 直到遇到break或者switch语句执行结束 */ 

 

6.switch语句可以接收的数据类型

byte, short, int, char, enum(枚举), J字符串.

 

7.if和switch的区别

swich适合使用在固定值,不能进行逻辑判断  而if适合使用逻辑判断,且里面的内容多样,可以是字符串,数值等等。。。

 

8.for循环执行流程

 /*

for(初始化表达式①;?布尔表达式②;?步进表达式④){

循环体③;

}

执行流程 执行顺序:①②③④>②③④>②③④…②不满足为止。

①负责完成循环变量初始化

②负责判断是否满足循环条件,不满足则跳出循环

③具体执行的语句

④循环后,循环条件所涉及变量的变化情况

*/ 

 

9.while循环的执行流程

 /*

初始化表达式①

while(布尔表达式②){

循环体③ 步进表达式④

}

 

执行顺序:①②③④>②③④>②③④…②不满足为止。

①负责完成循环变量初始化。

②负责判断是否满足循环条件,不满足则跳出循环。

③具体执行的语句。

④循环后,循环变量的变化情况

*/ 

10.do...while循环执行的执行流程

 /*

初始化表达式①

do{

循环体③ 步进表达式④

}while(布尔表达式②);

 

执行顺序:①③④>②③④>②③④…②不满足为止。

①负责完成循环变量初始化。

②负责判断是否满足循环条件,不满足则跳出循环。

③具体执行的语句

④循环后,循环变量的变化情况 注意:无条件执行一次

*/ 

11.for循环,while循环和do...while循环的区别

三种循环是可以替换的,但是三种循环也有一定的差异:

for循环适用于知道范围的情况(或知道循环次数的情况),当循环次数(或范围)不确定时用while循环或do......while循环。

while循环和do.......循环,当第一次进入循环就不满足条件时,while循环不做,do......while执行一次。其他情况输出结果是一样的。

12.死循环的两种写法

 while (true){}

 for(;;){} 

 

13.break的概念及使用场景

终止switch或者循环
break只有在switch或者循环中使用

14.扩展:嵌套for循环执行流程

 嵌套循环执行流程:

for(初始化表达式①;循环条件②;步进表达式⑦){

  for(初始化表达式③;循环条件④;步进表达式⑥){

    执行语句⑤;

  }

}

 

执行顺序:①②③④⑤⑥>④⑤⑥>⑦②③④⑤⑥>④⑤⑥ 外循环一次,内循环多次 

 

转载于:https://www.cnblogs.com/BRIGHTM00N/p/10462941.html

【源码免费下载链接】:https://renmaiwang.cn/s/6hcxp 在C语言中,链表是一种常见的数据结构,用于存储动态数据集合。在这个“基于C的简单链表合并2排序程序”中,我们需要处理两个已经排序的链表,a和b,每个链表的节点包含学号(假设为整型)和成绩(也假设为整型)。目标是将这两个链表合并成一个新的链表,并按照学号的升序排列。我们来了解一下链表的基本概念。链表不同于数组,它不连续存储数据,而是通过指针将各个节点连接起来。每个节点通常包含两部分:数据域(存储学号和成绩)和指针域(指向下一个节点)。要实现这个合并和排序的过程,我们可以遵循以下步骤:1. **定义链表节点结构体**: 创建一个结构体类型,如`Node`,包含学号(score_id)和成绩(grade)字段,以及一个指向下一个节点的指针(next)。```ctypedef struct Node { int score_id; int grade; struct Node* next;} Node;```2. **初始化链表**: 在程序开始时,创建a和b链表的头节点,并确保它们的初始状态为空。3. **读取链表数据**: 从输入文件(假设为11.8中的文件)中读取数据,根据学号和成绩创建新的节点,并将其添加到相应的链表a或b中。这一步可能需要使用`fscanf`函数从文件中读取数据,并使用`malloc`分配内存创建新节点。4. **合并链表**: 合并两个链表的关键在于找到合适的位置插入b链表的节点。从头节点开始遍历a链表,比较当前节点的学号与b链表头节点的学号。如果b链表的学号更小,就将b链表的头节点插入到a链表的当前节点后面,然后继续比较b链表的新头节点(原头节点的下一个节点)与a链表的当前节点。当b链表为空或所有节点都已插入a链表时,合并完成。5. **排序链表**: 由于我们合并的时候
【源码免费下载链接】:https://renmaiwang.cn/s/0gh4u :“bp神经网络实现的iris数据分类”在机器学习领域,BP(Backpropagation)神经网络是一种广泛应用的监督学习算法,它主要用于解决非线性分类和回归问题。本项目实现了利用BP神经网络对鸢尾花(Iris)数据集进行分类。鸢尾花数据集是UCI机器学习库中的经典数据集,包含了三种不同鸢尾花品种的多个特征,如花瓣长度、花瓣宽度、萼片长度和萼片宽度,总计150个样本。:“bp神经网络实现的iris数据分类,UCI上下载的iris数据,适当调整误差精度,分类正确率可达到99%”我们需要理解UCI机器学习库中的Iris数据集。这个数据集由生物学家Ronald Fisher在1936年收集,是用于多类分类的典型实例。它包含3种鸢尾花(Setosa, Versicolour, Virginica)的4个特征,每种花有50个样本。在使用BP神经网络进行分类时,我们通常会先对数据进行预处理,包括数据清洗、标准化或归一化,以确保输入层的数值在同一尺度上。BP神经网络的核心在于反向传播算法,它通过计算预测值与真实值之间的误差,并将误差从输出层向输入层逐层反向传播,调整权重以减小误差。在训练过程中,我们通常设置学习率、迭代次数以及停止训练的阈值,以达到最佳性能。在这个项目中,通过对误差精度的适当调整,使得网络能够在训练完成后对鸢尾花的分类准确率高达99%,这表明网络具有很好的泛化能力。【详细知识点】:1. **BP神经网络**:由输入层、隐藏层和输出层组成,通过梯度下降法和链式法则更新权重,以最小化损失函数。2. **鸢尾花数据集(Iris dataset)**:包含了150个样本,每个样本有4个特征和1个类别标签,常用于分类任务的基准测试。3. **特征工程**:预处理数据,可能包括缺失值处理、异常值检测
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值