JavaScript中的逻辑分支:IF, IFELSE, IFELSEIF结构

需积分: 9 0 下载量 103 浏览量 更新于2024-08-11 收藏 6KB MD 举报
"编程基础知识-分支结构在JavaScript中的应用" 在编程中,程序的三大基本结构是顺序结构、选择结构和循环结构。顺序结构是最简单的,按照代码行的顺序逐行执行;选择结构则是根据特定条件决定执行哪部分代码;循环结构则是在满足一定条件下反复执行某段代码。 在JavaScript中,分支结构主要体现在IF条件分支结构,包括单个if语句、if...else语句以及if...elseif...else语句。 1. **IF条件分支结构** - **if语句**:如果括号内的条件(通常是一个表达式)为真(即结果为`true`),则执行花括号`{}`内的代码块。例如: ```javascript if(true){ alert('因为条件是true,我会执行') } ``` 如果条件为假(`false`),`{}`内的代码将不会执行。 - **if...else语句**:当条件为真时执行if后的代码块,否则执行else后的代码块。例如: ```javascript if(true){ alert('因为条件是true,我会执行') }else{ alert('因为条件是false,我不会执行') } ``` 这种情况无论条件真假,总有一个代码块会被执行。 - **if...elseif...else语句**:允许设定多个条件,依次判断。一旦有符合条件的情况,对应的代码块就会执行,后面的`elseif`和`else`部分不再检查。例如: ```javascript if(true){ alert('我是代码段1') }elseif(false){ // 这里不会执行 }else{ // 因为已经有条件为true,所以这里也不会执行 } ``` 在这个例子中,由于第一个条件为真,所以立即执行对应的代码块,后续的`elseif`和`else`就被忽略了。 2. **逻辑分支的运用** 逻辑分支在JavaScript中广泛用于决策判断,比如根据用户输入、变量状态或计算结果来决定程序的行为。例如,可以用来检查用户是否已登录,或者根据商品库存决定是否允许购买: ```javascript let isLoggedIn = true; let stockAvailable = true; if(isLoggedIn && stockAvailable){ alert('可以购买'); }else if(isLoggedIn && !stockAvailable){ alert('商品暂无库存'); }else{ alert('请先登录'); } ``` 上述代码首先检查用户是否已登录,如果已登录并且商品有库存,则允许购买;如果已登录但无库存,则提示用户商品暂无库存;如果用户未登录,则提示先登录。 掌握这些基础的分支结构是编写复杂逻辑和处理各种业务场景的关键,也是JavaScript编程中不可或缺的一部分。通过灵活运用if、if...else和if...elseif...else,你可以创建出能够根据实际情况动态改变执行路径的智能程序。

保留原本功能优化以下代码import pandas as pd import numpy as np import matplotlib.pyplot as plt # 1.读取并查看数据 bike_day = pd.read_csv("C:/Users/15020/Desktop/26.bike_day.csv") print(bike_day.head(5)) # 前5行 print(bike_day.tail(2)) #后2行 #2.处理数据并导出到文件 bike_day_user = bike_day[['instant','dteday','yr', 'casual', 'registered']].dropna() bike_day_user.to_csv('bike_day_user.txt', sep=' ',index=False, header=False) #3.读取数据并添加新列并导出到新文件 bike_day_user = pd.read_csv('bike_day_user.txt', sep=' ', header=None, names=['instant','dteday','yr', 'casual',"registered"]) bike_day_user['cnt'] = bike_day_user['casual'] + bike_day_user['registered'] bike_day_user.to_excel('bike_day_user_cnt.xlsx', index=False) #4.读取数据并进行统计 bike_day_user_cnt = pd.read_excel('bike_day_user_cnt.xlsx') print('cnt最大值:',bike_day_user_cnt['cnt'].max()) print('ent最小值:',bike_day_user_cnt['cnt'].min()) print('2011号cnt年平均值:',bike_day_user_cnt[bike_day_user_cnt['yr'] == 0]['cnt'].mean()) print('2012年cnt年平均值:',bike_day_user_cnt[bike_day_user_cnt['yr'] == 1]['cnt'].mean()) print('2011年月严始值:', bike_day_user_cnt[bike_day_user_cnt['yr'] == 0].groupby('mnth')['cnt'].mean()) print('2022年月平均值:', bike_day_user_cnt[bike_day_user_cnt['yr'] == 1].groupby('mnth')['cnt'].mean()) # 5.可视化并保存图像 fig, ax = plt.subplots() ax.barh(bike_day_user_cnt['mnth'], bike_day_user_cnt[bike_day_user_cnt['yr'] == 0].groupby('mnth')['cnt'].mean(), color='blue', label='2011') ax.barh(bike_day_user_cnt['mnth'], bike_day_user_cnt[bike_day_user_cnt['yr'] == 1].groupby('mnth')['cnt'].mean(), color='lightblue', label='2012') ax.set_yticks(np.arange(1,13)) ax.set_yticklabels(['Jan','Feb','Mar', 'Apr', 'May','Jun','Jul','Aug', 'sep', 'Oct','Nov','Dec']) ax.set_xlabel('Average number of shared bike users') ax.set_title('Monthly Average Number of Shared Bike Users in 2011-2012') ax.legend() fig.savefig('bike_day_user_cnt.png', dpi=300)

2023-06-03 上传

select * from ( SELECT P.PATIENT_ID, P.VISIT_ID, PM.NAME, PM.SEX, P.ADMISSION_DATE_TIME, ( SELECT TOP 1 DP.DEPT_NAME FROM DEPT_DICT DP WHERE DP.DEPT_CODE = P.DEPT_ADMISSION_TO ) AS DEPT_ADM, P.DISCHARGE_DATE_TIME, ( SELECT TOP 1 DP.DEPT_NAME FROM DEPT_DICT DP WHERE DP.DEPT_CODE = P.DEPT_DISCHARGE_FROM ) AS DEPT_DIS, DATEDIFF( DAY, P.ADMISSION_DATE_TIME, P.DISCHARGE_DATE_TIME ) AS INPAT_DAYS, P.DOCTOR_IN_CHARGE --datediff(day, P.ADMISSION_DATE_TIME,P.DISCHARGE_DATE_TIME) as zyts FROM PAT_VISIT P INNER JOIN PAT_MASTER_INDEX PM ON PM.PATIENT_ID = P.PATIENT_ID WHERE select * from ( SELECT P.PATIENT_ID, P.VISIT_ID, PM.NAME, PM.SEX, P.ADMISSION_DATE_TIME, ( SELECT TOP 1 DP.DEPT_NAME FROM DEPT_DICT DP WHERE DP.DEPT_CODE = P.DEPT_ADMISSION_TO ) AS DEPT_ADM, P.DISCHARGE_DATE_TIME, ( SELECT TOP 1 DP.DEPT_NAME FROM DEPT_DICT DP WHERE DP.DEPT_CODE = P.DEPT_DISCHARGE_FROM ) AS DEPT_DIS, DATEDIFF( DAY, P.ADMISSION_DATE_TIME, P.DISCHARGE_DATE_TIME ) AS INPAT_DAYS, P.DOCTOR_IN_CHARGE --datediff(day, P.ADMISSION_DATE_TIME,P.DISCHARGE_DATE_TIME) as zyts FROM PAT_VISIT P INNER JOIN PAT_MASTER_INDEX PM ON PM.PATIENT_ID = P.PATIENT_ID WHERE P.DISCHARGE_DATE_TIME >= '2016-01-01' AND P.DISCHARGE_DATE_TIME < = '2023-07-10' AND DATEDIFF( DAY,P.ADMISSION_DATE_TIME, P.DISCHARGE_DATE_TIME ) >= 30 ) t order by inpat_days desc P.DISCHARGE_DATE_TIME >= '2016-01-01' AND P.DISCHARGE_DATE_TIME < = '2023-07-10' AND DATEDIFF( DAY,P.ADMISSION_DATE_TIME, P.DISCHARGE_DATE_TIME ) >= 30 ) t order by inpat_days desc 帮我把这段sql优化一下

2023-07-25 上传