Java基础:流程控制入门与if-else-if结构详解

需积分: 3 0 下载量 143 浏览量 更新于2024-08-05 收藏 654KB DOCX 举报
在本篇Java编程基础教程中,我们主要讨论了流程控制的基本概念及其在编程中的应用。流程控制是编程中不可或缺的一部分,它允许程序根据特定条件改变执行路径,从而实现更复杂的逻辑控制。 首先,流程控制的概念涵盖了三种主要类型:顺序结构、分支结构和循环结构。顺序结构是最基础的,代码按照编写的先后顺序逐行执行。分支结构则是根据条件决定代码执行的路径,如if语句用于单个条件判断,if-else和if-elseif-else结构则支持多条件比较,分别对应于一条路径和多个可能的分支。 在分支结构中,if语句的核心是布尔表达式,它会检查一个条件是否成立,如果条件为真,则执行紧跟在if后面的代码块。if-else结构则提供了两个互斥的代码块,当条件满足一个时执行一个,不满足则执行另一个。if-elseif-else则用于处理多个条件,按顺序检查每个条件,直到找到第一个满足的为止。 以实际问题为例,比如计算三个数中的最大值,通过嵌套if-else或if-else-if,可以逐一比较数值,找到最大者。再如,判断年龄和考试成绩并输出相应的提示,展示了分支结构的灵活运用。 循环结构则是针对需要重复执行相同或类似代码的情况,如for、while等循环,它们提供了在满足特定条件时重复执行代码块的功能。对于需要处理多个条件且涉及多个层次判断的问题,如确定星期数,由于if-elseif-else仅限于有限的条件层次,可以通过嵌套循环结合数组索引来实现。 最后,关于闰年的判断练习,展示了如何利用if-else条件语句来验证闰年规则,即闰年满足4的倍数但不满足100的倍数,或者同时满足400的倍数。这种基础的流程控制是理解和编写复杂逻辑程序的基础。 理解并掌握这些基础的流程控制结构是Java编程入门的关键,它们使得程序能够根据输入和预设规则动态调整执行路径,提高了代码的灵活性和可读性。熟练运用这些概念,可以帮助新手更好地组织和管理程序逻辑,为后续更高级的编程技巧打下坚实基础。

简化代码:def generate_time_series(start,end,t1,t2): current = start end_item = end time_delta = datetime.timedelta(days=t1,hours=t2) time_series = [current] while current < end_item: next1 = current + time_delta time_series.append(next1) current = next1 return time_series time_hour=generate_time_series(data1.loc[0]['FDT_TIME'],data1.loc[len(data1)-1]['FDT_TIME'],0,1) time_day=generate_time_series(data1.loc[0]['FDT_TIME'],data1.loc[len(data1)-1]['FDT_TIME'],1,0) def VALIDITY(timelist,thedata): datalist1=[] datalist2=[] thedata1=thedata.values for i in range(1,len(timelist)): TFlis=[] for j in range(len(thedata1)): if timelist[i-1]<=thedata1[j][2]<timelist[i]: TFlis.append(thedata1[j][6]) datalist1.append(TFlis) for i in datalist1: datalist2.append((i.count("T"))/len(i)) return datalist2 x1=[] for i in range(0,len(VALIDITY(time_hour, data1))): x1.append(i) x2=[] for i in range(0,len(VALIDITY(time_day, data1))): x2.append(i) plt.rcParams['font.sans-serif']=['SimHei'] plt.figure(figsize=(10,5)) plt.title('一周时间内的小时有效性时序图') plt.plot(x1,VALIDITY(time_hour, data1),color='k') plt.xlabel('时间') plt.ylabel('有效性') plt.xticks(np.arange(0,len(x1),24),['2010-04-18','2010-04-19','2010-04-20','2010-04-21','2010-04-22','2010-04-23','2010-04-24']) plt.show() plt.figure(figsize=(10,5)) plt.title('一周时间内的日有效性时序图') plt.plot(x2,VALIDITY(time_day, data1),color='k') plt.xlabel('时间') plt.ylabel('有效性') plt.xticks(np.arange(0,len(x2)),['2010-04-18','2010-04-19','2010-04-20','2010-04-21','2010-04-22','2010-04-23','2010-04-24']) plt.show()

2023-04-23 上传

用pandas函数代替下列代码:def generate_time_series(start,end,t1,t2): current = start end_item = end time_delta = datetime.timedelta(days=t1,hours=t2) time_series = [current] while current < end_item: next1 = current + time_delta time_series.append(next1) current = next1 return time_series time_hour=generate_time_series(data1.loc[0]['FDT_TIME'],data1.loc[len(data1)-1]['FDT_TIME'],0,1) time_day=generate_time_series(data1.loc[0]['FDT_TIME'],data1.loc[len(data1)-1]['FDT_TIME'],1,0) def VALIDITY(timelist,thedata): datalist1=[] datalist2=[] thedata1=thedata.values for i in range(1,len(timelist)): TFlis=[] for j in range(len(thedata1)): if timelist[i-1]<=thedata1[j][2]<timelist[i]: TFlis.append(thedata1[j][6]) datalist1.append(TFlis) for i in datalist1: datalist2.append((i.count("T"))/len(i)) return datalist2 x1=[] for i in range(0,len(VALIDITY(time_hour, data1))): x1.append(i) x2=[] for i in range(0,len(VALIDITY(time_day, data1))): x2.append(i) plt.rcParams['font.sans-serif']=['SimHei'] plt.figure(figsize=(10,5)) plt.title('一周时间内的小时有效性时序图') plt.plot(x1,VALIDITY(time_hour, data1),color='k') plt.xlabel('时间') plt.ylabel('有效性') plt.xticks(np.arange(0,len(x1),24),['2010-04-18','2010-04-19','2010-04-20','2010-04-21','2010-04-22','2010-04-23','2010-04-24']) plt.show() plt.figure(figsize=(10,5)) plt.title('一周时间内的日有效性时序图') plt.plot(x2,VALIDITY(time_day, data1),color='k') plt.xlabel('时间') plt.ylabel('有效性') plt.xticks(np.arange(0,len(x2)),['2010-04-18','2010-04-19','2010-04-20','2010-04-21','2010-04-22','2010-04-23','2010-04-24']) plt.show()

2023-04-23 上传