A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谭培龙 初级黑马   /  2012-7-6 14:47  /  2403 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 谭培龙 于 2012-7-7 17:15 编辑

import java.util.*;
class Test1 {
        public static void main(String[] args){
                int[] a = {1,3,7,4,4,3,2};
                int[] b = {1,3,5,4,4,3,2};
                ceshi(a);
                ceshi(b);
               
        }
        public static void ceshi(int[] a){
                Arrays.sort(a);
                int min = a[0];
                int max = a[a.length-1];
                if((max-min)>a.length){
                        System.out.println("不能组成连续的数字。");
                        return;
                }
                else
                        {
                        for(int x = 0;x<a.length-1;x++)
                                {
                                int first = (int)a[x];//这里为什么要int强转 我去掉int也能运行
                                int second = (int)a[x+1];
                                if(first != second){
                                        if((first+1) != second){
                                                System.out.println("不能组成连续的数字。");
                                                return;
                                        }
                                }
                        }
                }
}
               
        }
就是中间那里为什么要强转int?

评分

参与人数 1技术分 +1 收起 理由
职业规划-刘倩老师 + 1 赞一个!加油!

查看全部评分

3 个回复

倒序浏览
数组a[x]本来就是int类型,所以加不加(int)即进行不进行强转都没有关系
回复 使用道具 举报
没有必要加强转

1、主函数中,int[] a,ceshi(a);也就是定义了a这个整形数组,并把它传到ceshi这个函数里边去
2、public static void ceshi(int[] a),这里ceshi这个函数也用int[] a接受传过来的a,传过去的是数组,接受的也是数组,一致正确,所以在这个函数中,a是一个整形数组
3、int first = (int)a[x];在整形数组a中,取出一个元素,赋给first,而first本身就是int整形,而a本身就是整形,取出的元素必然也是整形元素,将整形元素a[x]赋给整形first,类型一样,没有必要将a强转
回复 使用道具 举报
这个强转是毫无意义的。

本身你定义的public static void ceshi(int[] a)只能接受int型数组。
所以a[x]一定会是整型的。
所以根本就不需要进行类型转换。
当然加上了也没有任何错误。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马