键盘录入一个int类型的数据,使用三元运算符判断这个数是奇数还是偶数, 并打印结果.

问题描述:

键盘录入一个int类型的数据,使用三元运算符判断这个数是奇数还是偶数, 并打印结果.

此处提供两种解法:

  1. 第一种解法:
import java.util.Scanner;

/**
 * 需求:
 * 键盘录入一个int类型的数据,使用三元运算符判断这个数是奇数还是偶数, 并打印结果.
 * 分析:
 * 1.键盘录入一个整数数据并接收
 * 2.三元运算符
 * 		格式:
 * 		num1>num2?num1:num2  输出最大值
 *      num1<num2?num1:num2  输出最小值
 * 3.运用if判断num正数还是负数 若是正数 三元运算符 num %2 > 0 ? num %2 : 0
 * 4.负数  三元运算符  (num % 2) < 0 ? (num % 2) : 0
 * 5.打印输出
 */
public class HomeWork04 {
    public static void main(String[] args) {
        System.out.println("请输入一个整数:");
        //键盘录入一个整数数据并接收
        int num = new Scanner(System.in).nextInt();
        if (num >= 0) {
        	// num>=0,对num取2的余数,然后对其余数运用三元运算符
            int max = ((num % 2) > 0 ? (num % 2) : 0);
            if (max > 0) {
                System.out.println(num + "为奇数"); //若输出的值为1,则其余数为1,故为奇数
            } else {
                System.out.println(num + "为偶数"); //反之输出的值为0,其num余数为0,故为偶数
            }
        } else {
            // num<0时,对num取2的余数,三元运算符此时需要取其最小值
            int min = ((num % 2) < 0 ? (num % 2) : 0);
            if (min < 0) {
                System.out.println(num + "为奇数");//若输出的值为-1,则其余数为-1,故为奇数
            } else {
                System.out.println(num + "为偶数");//反之输出的值为0,其num余数为0,故为偶数
            }
        }
    }
}
  1. 第二种解法:

推荐此种解法

import java.util.Scanner;

/**
 * 键盘录入一个int类型的数据,使用三元运算符判断这个数是奇数还是偶数, 并打印结果.
 * 分析:
 * 1.键盘录入一个整数并接收
 * 2.使用三元运算符通过运用字符串来判断奇偶数
 * 3.打印结果
 */
public class HomeWork04 {
    public static void main(String[] args) {
        //键盘录入一个整数并接收
        System.out.println("请输入一个整数:");
        int num = new Scanner(System.in).nextInt();
        String max = (num%2==0) ?"偶数":"奇数";
        //三元运算符通过判断奇偶数之后作为字符串赋值给max直接输出
        System.out.println(max);
    }
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来解答你的问题。 1. 用Java键盘录入10个整数存入数组中 可以使用Scanner类来实现键盘输入,代码如下: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] arr = new int[10]; for (int i = 0; i < arr.length; i++) { System.out.print("请输入第" + (i+1) + "个整数:"); arr[i] = scanner.nextInt(); } System.out.println("输入的数组为:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } } ``` 2. 定义一个方法将奇数放在数组的左侧,偶数放在数组的右侧 可以使用双指针法,在遍历数组时,用一个指针指向数组的头部,另一个指针指向数组的尾部,依次判断每个数的奇偶性,如果是奇数就将其放在左侧,如果是偶数就将其放在右侧。 代码如下: ```java public static void oddEvenSort(int[] arr) { int left = 0, right = arr.length - 1; while (left < right) { while (left < right && arr[left] % 2 == 1) { left++; } while (left < right && arr[right] % 2 == 0) { right--; } if (left < right) { int temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; } } System.out.println("奇偶排序后的数组为:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } ``` 3. 定义一个方法传入一个int类型数组,输出这个数组中只出现一次的数字及个数。 可以使用HashMap来统计每个数字出现的次数,然后再遍历一次数组,输出只出现一次的数字及个数。 代码如下: ```java import java.util.HashMap; public static void findSingleNum(int[] arr) { HashMap<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < arr.length; i++) { if (map.containsKey(arr[i])) { int count = map.get(arr[i]); map.put(arr[i], count + 1); } else { map.put(arr[i], 1); } } int singleCount = 0; System.out.print("数组中只出现一次的数字有:"); for (Integer key : map.keySet()) { if (map.get(key) == 1) { singleCount++; System.out.print(key + " "); } } System.out.println("共" + singleCount + "个"); } ``` 完整代码如下: ```java import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] arr = new int[10]; for (int i = 0; i < arr.length; i++) { System.out.print("请输入第" + (i+1) + "个整数:"); arr[i] = scanner.nextInt(); } System.out.println("输入的数组为:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } oddEvenSort(arr); findSingleNum(arr); } public static void oddEvenSort(int[] arr) { int left = 0, right = arr.length - 1; while (left < right) { while (left < right && arr[left] % 2 == 1) { left++; } while (left < right && arr[right] % 2 == 0) { right--; } if (left < right) { int temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; } } System.out.println("奇偶排序后的数组为:"); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); } public static void findSingleNum(int[] arr) { HashMap<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < arr.length; i++) { if (map.containsKey(arr[i])) { int count = map.get(arr[i]); map.put(arr[i], count + 1); } else { map.put(arr[i], 1); } } int singleCount = 0; System.out.print("数组中只出现一次的数字有:"); for (Integer key : map.keySet()) { if (map.get(key) == 1) { singleCount++; System.out.print(key + " "); } } System.out.println("共" + singleCount + "个"); } } ``` 希望我的回答能够帮助到你。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值