java for特殊用法 数组排序 进制转换


/*
1.continue与break的特殊用法。

*/

public static void main(String[] args)
{
    //对于循环,可以标识名字,方便中断循环
    w:for(int x=0; x<3; x++)
    {
        for(int y=0; y<4; y++)
        {
            System.out.println("x="+x); //打印:0
            break w; //结束的是外层循环
        }                
    }

    //continue:只能作用于循环结构。继续循环。特点:结束本次循环,继续下一次循环。

    for(int x=1; x<=10; x++)
    {
        if(x%2==1)
            continue;
        System.out.println("x="+x); //打印2,4,6,8,10
        
    }

    w:for(int x=0; x<3; x++)
    {
        for(int y=0; y<4; y++)
        {
            System.out.println("x="+x); //打印0,1,2
            continue w; //继续外层的循环
        }                
    }
}

/*
2. 常量与变量的关系
*/
byte b1=3,b2=4,b;
b = b1 + b2; //编译失败,b1+b2类型自动提升为int型,而b是byte型,故类型不匹配
b = 3 + 4; //编译成功,3+4的结果范围在127范围内。
b += 1; //编译成功,b自动增加1
b = b + 1; //编译失败,b+1后是int型,而b是byte型,故类型不匹配;与b+=1稍有区别

/*
3. 数组的相关知识
*/
int[] x,y[];//x一维,y二维。注意y的数组定义是二维的,定义方式有些奇怪,但是语法是正确的。
int[] x;
int[] y[];

a.x[0] = y;//error

b.y[0] = x;//yes

c.y[0][0] = x;//error

d.x[0][0] = y;//error

e.y[0][0] = x[0];//yes

f.x=y;//error

//数组的基本排序,选择与冒泡排序

/*
选择排序。
内循环结束一次,最值出现头角标位置上。
*/
public static void selectSort(int[] arr)
{
    for (int x=0; x<arr.length-1 ; x++)
    {
        for(int y=x+1; y<arr.length; y++)
        {
            if(arr[x]>arr[y])
            {
                int temp = arr[x];
                arr[x] = arr[y];
                arr[y]= temp;
            }
        }
    }
}

/*
冒泡排序
*/
public static void bubbleSort(int[] arr)
{
    for(int x=0; x<arr.length-1; x++)
    {                                    
        for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
        {
            if(arr[y]<arr[y+1])
            {
                int temp = arr[y];
                arr[y] = arr[y+1];
                arr[y+1] = temp;
            }
        }
    }
}

/*
十进制之间的转换
*/
/*
十进制-->二进制
*/
public static void toBin(int num)
{
    trans(num,1,1);
}

/*
十进制-->八进制
*/
public static void toBa(int num)
{
    trans(num,7,3);
}
/*
十进制-->十六进制
*/
public static void toHex(int num)
{
    trans(num,15,4);
}

public static void trans(int num,int base,int offset)
{
    //当要转换的的数字为0时,对应的进制数也为0
    if(num==0)
    {
        System.out.println(0);
        return ;
    }
    char[] chs = {'0','1','2','3'
                ,'4','5','6','7'
                ,'8','9','A','B'
                ,'C','D','E','F'};
    char[] arr = new char[32];

    int pos = arr.length;

    while(num!=0)
    {
        int temp = num & base;
        arr[--pos] = chs[temp];
        num = num >>> offset;
    }

    for(int x=pos; x<arr.length; x++)
    {
        System.out.print(arr[x]);
    }

    return ;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值