20190721 Java

第一题:不借助第三方变量,交换两个变量的值

    通常我们交换两个变量的值,都是先定义一个中间变量temp,实现变量值交换。以下采用另外两种方法,不借助第三方变量,从而实现两个变量值的交换。

  •     方法一:用加减运算实现
public class HomeWork1 {
	public static void main(String[] args) {
		int a = 4;
		int b = 5;
		//方法一:用加减运算实现
        	a=a+b;//将a重新赋值
		b=a-b;//具体计算是(a+b)-b得到a赋值给b
		a=a-b;//具体计算是(a+b)-b也就是减去新的b(新的b=a)  

                System.out.println("交换后 a的值为"+a+",b的值为"+b);
	}
}
  •     方法二:用异或运算实现(不推荐使用,可读性较差)

    知识点补充:异或运算符为“^”,两个操作数进行异或运算时,会转换成二进制数进行运算,其运算规则为同位比较,相同为0,不同为1。

    ①任一变量A与其自身进行异或,结果为0,即 A^A=0
    ②任一变量A与0进行异或,结果不变,即 A^0=A
    ③异或运算具有可结合性,即 a^b^c = (a^b)^c = a^(b^c)
    ④异或运算具有可交换性,即 a^b = b^a

int a = 4;  //4的二进制表示为100
int b = 5;  //5的二进制表示为101
a=a^b;  // 转为二进制运算就是 001=100^101 ,001是结果赋值给a
b=a^b;  // 100=001^101,100是结果赋值给b
a=a^b;  // 101=001^100,101是结果赋值给b
	

    分析过程:

    ① a = a ^ b ,a的值为 a ^ b;
    ② b = a ^ b 等号右侧即 (a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a,然后 b 的值为 a;
    ③ a = a ^ b 等号右侧的a仍然是一开始 a ^ b 的值,b的值为最初的 a,即 a ^ b = (a ^ b) ^ a = a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b, 将此结果赋值给a,即 a = b;

    运行结果:


第二题:键盘输入四位数字的会员卡号,使用“/”和“%”运算符分解获得会员卡各个位上的数字,并将各个位上的数字进行求和

import java.util.Scanner;

public class HomeWork2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入4位会员卡号:");
        int cardId =input.nextInt();
		
        //如果卡号是4位数
        if(cardId>=1000&&cardId<10000){
	    System.out.println("会员卡号是:"+cardId);//输出卡号
			
            //声明千位、百位、十位、个位变量,并赋值
            int qianWei = cardId/1000;
            int baiWei = cardId/100%10;
	    int shiWei = cardId/10%10;
	    int geWei =cardId%10;
			
	    int sum =qianWei+baiWei+shiWei+geWei;//声明sum变量,赋值各位之和
			
	    System.out.println("千位数:"+qianWei+"\t百位数:"+baiWei+"\t十位数:"+shiWei+"\t个位数:"+geWei);
	    System.out.println("会员卡号"+cardId+"各位之和:"+sum);	
	}else{
	    System.out.println("此数非4位的卡号");
	}	
    }
}

    运行结果:


第三题:System.out.println()和System.out.print()什么区别呢?

  • System.out.println(); 输出信息后换行,下一条输出语句在新的一行输出
System.out.println("这里是System.out.println输出结果:");
System.out.println("Hello");
System.out.println("World");

    运行结果:

  • System.out.print(); 输出信息后不换行,下一条输出语句在同一行输出
System.out.println("这里是print输出结果:");
System.out.print("Hello");
System.out.print("World");

    运行结果:

  • System.out.print("\n") 相当于 System.out.println();
System.out.println("加转义符输出结果:");
System.out.print("Hello"+"\n");
System.out.print("World");

    运行结果:


第四题:输出如下心形图

public class HomeWork4 {
   public static void main(String[] args) {
	System.out.println("   *                         *");
	System.out.println("*     *    I love Java    *     *");
	System.out.println("  *                           *");
	System.out.println("    *                       *");
	System.out.println("      *                   *");
	System.out.println("        *               *");
	System.out.println("          *           *");
	System.out.println("             *     *");
	System.out.println("                *");
   }

}

    运行结果:


第五题:为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?

import java.util.Scanner;

public class HomeWork5 {
    public static void main(String[] args) {
	Scanner input = new Scanner(System.in);
	System.out.println("请输入作战时长:");
	int hour1 = input.nextInt();

	int day = hour1/24;
	int hour2 = hour1%24;
	System.out.println("战士连续作战"+hour1+"小时,共"+day+"天零"+hour2+"小时");
    }
}

    运行结果:


第六题:今天是周二,100天以后是周几?(%)

public class HomeWork6 {
    public static void main(String[] args) {
	int day1 =2;
	int day2 = (100+day1)%7;
		
	System.out.println("今天是周"+day1+",100天以后是周"+day2);
    }
}

    运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值