JAVA基础学习 Day006

本文主要介绍了JAVA基础学习中的重点内容,包括自动类型提升的易错题,如何将整数转化为十六进制,自增操作的细节,运算符的优先级规则,以及通过循环实现特定图案的打印输出。这些知识点对于理解和运用JAVA语言至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 关于自动提升类型的易错题

	public static void main(String[] args) {
		char x = 'x';
		int i = 10;
		System.out.println(true? x : i);
		System.out.println(true? 'x' : 10);
	}
//答案:
//120
//x
/*
 * 如果其中有一个是变量,按照自动类型转换规则处理成一致的类型;
 * 如果都是常量,如果一个是char,如果另一个是[0~65535]之间的整数按char处理,相当于(char)10;
 * 			如果一个是char,另一个是其他,按照自动类型转换规则处理成一致的类型;
 */

2. 如何求一个0~255范围内的整数的十六进制值,例如60的十六进制表示形式3C

Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int i1 = number / 16;
int i2 = number % 16; 
String s1 = (i1 > 9) ? (char)((i1 - 10) + 'A') + "" : i1 + " ";
String s2 = (i2 > 9) ? (char)((i2 - 10) + 'A') + "" : i2 + " ";
System.out.println(number + "的十六进制是" + s1 + s2);

3. 关于自增

int i = 0;
i = i++;
System.out.println(i);
	/**
	 * i++ 表达式返回0 ,i自增i变为1。 所以运算的结果为返回值为0,i=1。再算等号左边赋值,把返回值0赋给i, i又变成了0。
	 */

//面试题:陷阱题
//先赋值,把i原来的值重新赋值给i,不变,然后i自增,但是这个自增后的值没有在放回变量i的位置

4. 考察运算符的优先级

int x=0,y=1;
if(++x==y-- & x++==1||--y==0)
    System.out.println("x="+x+",y="+y);  
else
    System.out.println("y="+y+",x="+x);
 //x = 2,y = 0;

5. 写出运算结果

int i = 0, j = 5; 
    tp: for (;;){ 
            i++; 
            for(;;){
                if(i > j--)
                break tp; 
            }
        } 
System.out.println("i = " + i + ", j = "+ j); 
  //i=1,j=-1;

6. 打印输出以下图案,使用一个外层循环

   *

   * * *

   * * * * *

   * * * * * * *

   * * * * *

   * * *

   *

for(int i = 1; i <= 7;i ++) {
	if(i <= 4) {
		for(int j = 1; j <= 2 * i - 1; j++) {
			System.out.print("* ");
		}
	}else {
		for(int j = 1; j <= 15 - 2 * i; j ++) {
			System.out.print("* ");
		}
	}
	System.out.println();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值