内容正文:
课题四 Java基础语法
任务7 使用数组完成支出统计任务
任务引入
对于衣、食、住、行、交际、爱好、其他等项目,要完成相同的操作:
1.计算每一单项开支占总支出额的百分比。
2.计算每一项开支在一个360度的圆周中跨度是多少?
衣
食
住
行
交际
爱好
其他
需要重复计算
知识准备:了解数组
数组和变量一样是容器
变量存放单个数据,数组存放多个数据
10
a
int a=10;
一个萝卜一个坑
变量
数组
1
b
int b[ ]={1,2,3,4};
一块田里种多个萝卜
2
3
4
知识准备:使用数组
数组的申明和实例化
通用的一维数组的声明格式是:
type var-name[];
举例:
int array_int[ ];
String[ ] str;
利用new 来为数组型变量分配内存空间
array_int=new int[10];
str=new String[10];
两步可以合并,如:
int String[ ] str=new String[10];
申明只是表达该数组
的合法地位和身份,
内存中并没有真正分
配空间用来做数据的
存储
对数组进行new的操作
之后,该数组才真正
的存在了,也就是
内存中分配了指定大小
的空间用于数据存储
知识准备:使用数组
数组中成员的访问:使用下标
1
b
int b[ ]={1,2,3,4};
2
3
4
b[0]
b[1]
b[2]
b[3]
int C[ ]=new int[3];
C[0]=1;
C[1]=2;
C[2]=3;
System.out.println(C[0]);
System.out.println(C[1]);
System.out.println(C[2]);
知识补充:数组也可以存储对象
数组可以存储对象
例如有一个学生类Student,如果我们需要定义一个数组存储2个学生,需要这样做:
Student class1[]=new Student[2];
class1[0]=new Student();
class1[1]=new Student();
普通数据类型的成员
是不需要这个步骤的
为什么?
课堂练习
完成教材代码7-1
练习中的发现:数组的重复操作
循环结构
知识准备:循环语句的基本结构
for循环
for(变量初始化; 条件; 递增或递减变量的值)
{语句组; }
for 循环
例如
for(次数为1; 如果次数<3; 次数加1)
{
输入密码;
}
课堂练习
完成教材代码7-2
知识准备:循环语句的基本结构
while循环
while(条件)
{ 语句组; }
while 循环
例如
while(门没有打开)
{
敲门;
问一句有人吗;
}
进门;
课堂练习
完成教材代码7-3
知识准备:循环语句的基本结构
do-while循环
do
{
语句组;
}
while(条件);
Do-while 循环
例如
do
{
浇水;
施肥;
除草;
} while(萝卜没有成熟);
课堂练习
完成教材代码7-4
任务分析
支出数据存储结构的变化
float clothes,food,house,walk,friends, hobbys,other;
float outputs[]=new float[7];
任务分析
运算方式的简化:使用循环简化对支出数据的
操作
任务分析
运算方式的简化:使用循环简化对支出数据的
操作
任务分析
运算方式的简化:使用循环简化对支出数据的
操作
任务实施:完成对支出数据的处理任务
完成教材代码7-5的代码设计与调试
作业
教材中的课后思考与练习
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
定义变量i=0
nums[I]=cnt++;
i++;
i<数组的长度5
(是否进入循环体)
继续处理
循环体
离开循环
是
否
�
�
�
累加output[i]的值
i<outputs数组长度
继续处理
For循环
离开循环
是
否
outputs数组中存储了7项支出总额
i=0;sum=0;
�
�
�
用outputs[i]除以sum得到单项开支的百分比
i<outputs数组长度
继续处理
For循环
离开循环
是
否
outputs数组中存储了各项支出总额
sum中存放所有开支的总金额
i=0;
�
�
�
用(outputs[i]除以sum)乘360度得到单项开支的圆周跨度
i<outputs数组长度
继续处理
For循环
离开循环
是
否
outputs数组中存储了各项支出总额
sum中存放所有开支的总金额
i=0;
$$