【参考答案】java基础练习:变量、数据类型、输入、输出、运算符

练习1:判断输入的值是否是偶数,另外,要处理输入错误

(目的:熟悉输入、输出,特别是Scanner对象的方法)

package com.qzcsbj;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("请输入一个整数:");
        if (input.hasNextInt()) {
            int num = input.nextInt();
            if (num % 2 == 0) {
                System.out.println(num + "是偶数");
            } else {
                System.out.println(num + "是奇数");
            }
        } else {
            System.out.println("输入无效!");
        }
    }
}

练习2:输入并输出姓名、年龄、身高

package com.qzcsbj;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("请输入您的姓名:"); 
        String name = input.next(); 
        System.out.print("请输入您的年龄:");
        int age = input.nextInt();
        System.out.print("请输入您的身高:");
        double height = input.nextDouble();
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("身高:" + height);
    }
}

练习3:从控制台获取Java、Oracle、HTML三门课程的成绩,计算总分和平均分

平均分保留2位小数,要求四舍五入

package com.qzcsbj;

import java.text.DecimalFormat;
import java.util.Scanner;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("请输入Java成绩:");
        int java = input.nextInt();
        System.out.print("请输入Oracle成绩:");
        int oracle = input.nextInt();
        System.out.print("请输入HTML成绩:");
        int html = input.nextInt();

        double sum = java + oracle + html; 
        double avg = sum / 3; 
        DecimalFormat df = new DecimalFormat("#.00");

        System.out.println("---------------------------------");
        System.out.println("Java\tOracle\tHTML");
        System.out.println(java + "\t\t" + oracle + "\t\t" + html);
        System.out.println("---------------------------------");
        System.out.println("总分:" + sum);
        System.out.println("平均分:" + df.format(avg));
    }
}

练习4:输入一个数字,反转输出,如:输入123,输出321

package com.qzcsbj;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入一个整数:");
        if (sc.hasNextInt()) {
            int num = sc.nextInt();
            while (num != 0) {
                int res = num % 10;
                System.out.print(res);
                num = num / 10;
            }
        }else {
            System.out.println("输入有误。");
        }
    }
}

练习5:输入tom和jack的年龄,比较年龄并输出相差多少岁,要求使用条件运算符

package com.qzcsbj;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("请输入tom的年龄:");
        int tom = input.nextInt();
        System.out.print("请输入jack的年龄:");
        int jack = input.nextInt();

        String result = (tom - jack > 0 ? "tom比jack大:" + (tom - jack)
                : "jack比tom大:" + (jack - tom)) + "岁";

        System.out.println(result);
    }
}

练习6:交换两个数值变量的值(至少两种方法)

package com.qzcsbj;

/**
 * @公众号 : 全栈测试笔记
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <>
 */
public class Test {
    public static void main(String[] args) {
        int a = 1,b = 2;
        // 方法一:不通过中间变量
        // a = a + b;
        // b = a - b;
        // a = a - b;

        // 方法二:通过中间变量
        int temp=a;
        a=b;
        b=temp;
        
        System.out.println(a);
        System.out.println(b);
    }
}

练习7:下面结果分别是?并说明原因

int a = 97;
char b = a;
System.out.println(b);

检查异常,int是4个字节,char是2个字节,需要强制类型转换,可能会损失精度

char c = 97;
System.out.println(c);

输出结果:a

97不是被当做int来处理

        int m = 3;
        int n = m++ + ++m;
        System.out.println("m:"+m+", n:"+n);

m:5, n:8

一目运算符++优先级高于算术运算符+

运算符相同,从左到右执行

所以,第一个m是3,然后++后是4,第二个m,++m后是5,所以n是3+5=8

练习8:下面结果分别是?说明原因

public class Test {
    public static void main(String[] args) {
        short a=1;
        a = a+1;
        System.out.println(a);
    }
}
public class Test {
    public static void main(String[] args) {
        short b=1;
        b+=1;
        System.out.println(b);
    }
}

第一个报错,第二个不会

第二个复合赋值运算符会自动地将运算结果转型为其左操作数的类型,而第一个简单赋值运算不会。

【bak】

原文会持续更新,原文地址:https://www.cnblogs.com/uncleyong/p/17043874.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值