积木首页 - 学院 - 软件测试 - 技术百科 - 问答 - 黄页 - 手册 - 站长工具 - 社区
登录 | 注册
    
问吧 >> 全部标签 >> 大家看看这个java程序

[已解决问题] 大家看看这个java程序

相关标签:[ Java 开发语言 编程 JAVA .Net ]
悬赏:25 分 -- 解决时间:2009-05-26 19:30
class A3

{

public static void main (String [] args)

{

int number=0;

String s = "student;entropy;engage,english,client";

for(int k=0;k<s.length();k++)//k为什么是从0开始,而不是从1开始

{ if(s.regionMatches(k,"en",0,2))//里面的0为什么不写1,不是从第一个吗?

{

number++;

}

}

System.out.println("number="+number);

}

}

提问者:zgxstar  2009-05-26 17:50

回答问题,帮助别人,还能赢取积分!
最佳答案
数组下标从0开始是从C开始的 说白了就是除了类型系统之外,C的许多特征是为了方便编译器设计者而建立的(为什么不呢?开始几年C语言的主要客户就是哪些编译器设计者).数组下标从0而不是从1开始也是根据编译器设计者的思路而来的,因为偏移量的概念在他们心中已是根深蒂固.但这种设计让非编译器设计者感觉很别扭,他们可能会在一个定义的a[10]的a[10]存储数据,导致有名的一位偏移(one-bit offset)错误.



java为何下标也从0开始呢,估计是考虑到习惯性问题.C/C++程序员被固化成下标从0开始后,想更改它也是件费劲事.

回答者:稥氺を萢萢ツ  2009-05-26 18:12

回答(7)
索引从O开始,长度从1开始。两个概念别弄混了

回答者:ymnych0420  2009-05-26 17:57

for循环是从你给的初始值开始循环的,第一次K还没有进行++运算,所以从0开始。

if语句里面的0指的是它数组的下标,下标是从0开始,所以要写0.

回答者:星空8  2009-05-26 18:07

这是国外的习惯,数组是从0开始,原因很简单,编程语言也是来至生活,国外不像中国,没有0层这个概念。在国外,大厦或者是农场中一般都有0层,也就是地下室。所以他们习惯从0开,到1的时候就是地上了。其实中国也有这种现象,中国的奖励中有1等奖。但是在一等奖前面往往还有特等奖,这个特等就是0,只不过咱们习惯了1是开始,而国外把地下的一层算开始。

回答者:政协委员  2009-05-26 18:20

没为什么。这是规定!

就和公交前门上后门下一样!

回答者:wlszd  2009-05-26 18:29

恩,在编程语言中,一般不是特殊情况的话,都是从0开始,所以当有N个字符时或有N个元素的集合时为0到N-1.

因为在机器语言的二进制0也是一种状态,如果为了贴近自然语言而舍弃它的话,会给机器的处理带来不必要的更多麻烦.所以就保留了.习惯就好了.呵呵.

回答者:keke1996  2009-05-26 18:36

数组的下标是从0开始的,没有为什么,官方标准。

回答者:褚xinyuan  2009-05-26 18:47

数组都是从0开始的。。。



因为C语言就是这样的,后来的java,c++,c#,php等都受C的影响~

回答者:嘉嘉妈  2009-05-26 18:54


PHP: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码 - 正则表达式 - 热门脚本语言: DOS命令 - vbs - CSS/HTML - python - perl - ruby - shell编程 - Powershell

JS: node.js - JS基础 - extjs - jQuery - JavaScript技巧

网址导航成语大全积木 TinyMCE 服务邮箱: Gimoohr(#)gmail.com
Copyright © 2008 Gimoo.Net  京ICP备05050695号