标题:[求助]我想了很久的问题!
只看楼主
ada518618
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2006-3-27
 问题点数:0 回复次数:8 
[求助]我想了很久的问题!

public class Example2_4
{
public static void main(String [] aa)
{
byte score[] = {1,2,3,4,5,6,7,8,9,10
};
System.out.println("数组元素之和 ="+score[0]+score[1]+score[2]+score[3]+score[4]+score[5]+score[6]+score[7]+score[8]+score[9]);
}
}
这个程序要怎么用for、while和do{}while改写,我自己就这样写,可就是行不通,我想了很久也没想出来,请大家帮个忙!
我改写的:
public class Example2_4_1
{
public static void main(String args[])
{
int i=0;++i;
byte score[] = new byte[i];
score[i] = ++i;
do
{
System.out.println(score[i]);
}while(i<=10);
}
}

搜索更多相关主题的帖子: public void int String 
2006-04-10 22:34
晓狐狸
Rank: 2
等 级:新手上路
威 望:3
帖 子:95
专家分:0
注 册:2006-4-6
得分:0 
你用的这种方式不可以改变数组大小
你new的时候 就已经指定他是一个只包含一个元素的数组了
照你下面的写法就会出现 脚标越界 的异常拉~~
而且你把 一个int型的变量值赋给 一个byte类型的变量 也是不对的哦~
如果要定义长度可增减的数组 那就使用 包装类吧~~(较复杂)

//***************一般我们就用这种方法拉**************
public class Example2_4
{
public static void main(String [] aa)
{
byte score[] = new byte[11];
for(byte i=0;i<=10;i++)
{
score[i]=i;
System.out.println(score[i]);
}
}
}
类名和文件名要一样哟~

[此贴子已经被作者于2006-4-10 23:10:47编辑过]


2006-04-10 22:57
伯约
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-4-5
得分:0 
public class Example{
public static void main(String[]args){
byte [] score=new byte [10];
for(byte i=0;i<score.length;)
score[i]=++i;
byte i=0;
while(i<score.length)
{System.out.println("score["+i+"]="+score[i]);
i++;
}
}
}
不知道合不合你意?

2006-04-10 23:05
ada518618
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2006-3-27
得分:0 

嘎嘎!请原谅我刚学JAVA才1个礼拜,而且我用的书也没写详细length的意思!所以3楼的朋友,你的我要再过一段时间才理解得了呢!不过多谢了喔!
而2楼的(不晓得是不是个姐姐呢!?),呵呵!多亏你提醒喔!我倒忘记变量类型的概念了!
我现在正在理解为什么这里要用byte score[] = new byte[11]而不是跟3楼的朋友和我想的,要用byte score[] = new byte[10]呢!?
理解当中……………………


Eclipse!尽管我现在不懂祢,可是我却对你情有独钟……
2006-04-10 23:31
晓狐狸
Rank: 2
等 级:新手上路
威 望:3
帖 子:95
专家分:0
注 册:2006-4-6
得分:0 
数组就象是一个容器,比如这个容器是 菜篮子;那么这个篮子里就只能放蔬菜之类的了`

byte score [] = new byte[11];//*********这就表示你现在有11个菜篮子
那么我们就可以在这些篮子中放入蔬菜,每个篮子放入一种蔬菜,虽然每个篮子装的蔬菜都不一样,但是他们都是属于蔬菜一类的,
它们都可以放到这些篮子里。

至于这个byte score [] = new byte[11];//中括号中是11那是因为,我要将11个数字放入这些数组啊。

我最后打印出来的结果是 0,1,2,3,4,5,6,7,8,9,10 这里一共是11个数字 那我当然要用11个篮子来装他们了

所以这个中括号里面要填写几 是根据自己的需要来的,

如果你只想打印 0-9 那么这就只有10个整数了,那我们只需要10个篮子来装他们 所以byte score [] = new byte[10]就可以了。

至于length的意思就是:

score这是一个数组名对吧?那么我们只需要score.Length这样写 就可以获得这个数组中元素的个数了。

数组名.length 这个意思就是 数组中元素的个数是多少个。

如果 byte score[] = new byte[20]//创建一个包含20个元素的数组

那么score.length就会返回给你一个 整数20

我们可以 int i=score.length 这样一来 i的值就=20了。

就是这样的,可以理解吗?

[此贴子已经被作者于2006-4-11 11:14:27编辑过]


2006-04-10 23:58
ada518618
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2006-3-27
得分:0 

是score.length的值等于byte score[] = new byte[10]中的元素个数10么!?


Eclipse!尽管我现在不懂祢,可是我却对你情有独钟……
2006-04-11 00:23
晓狐狸
Rank: 2
等 级:新手上路
威 望:3
帖 子:95
专家分:0
注 册:2006-4-6
得分:0 
对 就是这样的
byte b[] = new byte[10];
for(byte i=0;i<b.length;i++) //***********for(int i=0;i<10;i++) 是一样的
{
b[i]=i;
}
//这样我们就可以利用这个循环,为数组中的10个元素全部赋值了

[此贴子已经被作者于2006-4-11 11:13:51编辑过]


2006-04-11 00:30
ada518618
Rank: 1
等 级:新手上路
帖 子:184
专家分:0
注 册:2006-3-27
得分:0 
恩!谢啦!好了!我休息了!
下次再来讨教咯!
一起喝一杯休息休息!88

Eclipse!尽管我现在不懂祢,可是我却对你情有独钟……
2006-04-11 00:36
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
这里的朋友真的挺热情的。
不错

可惜不是你,陪我到最后
2006-04-11 10:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-56642-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013370 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved