用? : 表达式编写程序实现两个整型数按大小顺序输出【老师的作业】


引语:
今天是上Java网课的第二天,感受着被学习通和QQ群直播支配的恐惧,老师布置了这么一个作业


用? : 表达式编写程序实现两个整型数按大小顺序输出


比较大小

法一、if else

比较大小,首先想到 if else 简单易懂,比较两个数的代码如下图所示

	if(a>b) {
			max=a;
		}else {
			max=b;
		}

这个是最简单基础的比较大小了吧。如果是比较三个数的,可以再嵌套 if else

法二、? : 三目运算符

? : 也称 条件运算符 就是常说的问号冒号运算,是if…else结构的简化形式。其名称的出处是它带有三个操作数。它可以计算一个条件,如果为真,就返回一个值;如果条件为假,则返回另一个值。

int a = ();
int b = ();
int max;
max = a > b ? a : b; 

以上的代码就是两个数比较大小,这个代码运行结果,c 就是最大数了。(代码中的数,我用()来代替)
这句话的意思就是:如果 a > b 就输出a,将 a 的值赋值给 c 。如果 a < b 就输出 b , 将 b 的值赋值给 a 。


如果是三个数 a b c用三目运算符 该如何输出最大值呢

int a = ();
int b = ();
int c = ();
max = a > b ? (a>c?a:c):(b>c?b:c);

代码就在上面,你品,和两个数的比较方法是一样的,就是先比较 ab 的大小,比较出大的值再和 b 比较。


上面的几个方法在C语言也是通用的,我们也可以用Java语言的一些代码来实现。

法三、Java Math.abs

这个首先要调用接口 import java.lang.Math; 这个就类似于 C 语言的 include 了。比较 整型数 a b 的大小还有

 (a+b+Math.abs(a-b))/2

阿西吧,这个表达式是一个小姐姐写的,我当时惊了Σ(っ °Д °;)っ,为了掩饰尴尬,我只好去百度啥意思。

  • Math.abs(int a)
  • Math.abs(long a)
  • Math.abs(double a)
  • Math.abs(float a)
    首先,这个有四个类型,分别是 int long double float ,也就是说,这四个类型的数,都可以用这个静态方法
    该函数的作用就是,对括号的数取绝对值,例如下方代码
Math.abs('-1'); 		// 1

知道了Math.abs的作用,那 那个代码,,的意思是什么呢,动笔写了一下,恍然大悟,原来这个我学过(滑稽.jpg)
绝对值函数
数学学的都还给老师了,,(心塞.jpg)
绝对值函数
现在,我们就可以理解那个代码是什么意思了吧。
以上内容,就是一些简单的比较大小的方法。但是我们老师出的题目可不是这个。


比较大小,且排序

法一、if else

啊哈,这里也有 if else 的身影。简单的写法就是定义两个变量 maxmin

int a ,b ;
int max, min;
if(a>b){
	max=a;
}else{
	min=b;
}
System.out.println("由大到小的顺序是:"+max+" "+min);

其实呢,这个也不需要定义 maxmin 变量

int a ,b ;
int max, min;
if(a>b){
	System.out.println("由大到小的顺序是:"+a+" "+b);
}else{
	System.out.println("由大到小的顺序是:"+b+" "+a);
}

这样其实也可以的。都差不多

法二、? : 三目运算符

阿西巴,这个其实也和if else 的第一种写法是一样的。

int a, b;
int max, min;
max=a>b?a:b;//获得最大值
min=a<b?a:b;//获得最小值

然后输出 max min 就可以了

法三、Java数组之Arrays

这个用法,,感觉有点违反游戏规则,不说太多,先来上代码感受一下

int[] a = {8, 6, 4, 9, 2, 5, 1, 3, 10, 7};
Arrays.sort(a);
System.out.println(Arrays.toString(a));

Console:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

感觉好强,这里就先对Arrays的升序排序介绍一下

Arrays是什么呢?

  • Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能

你们可能有注意到,,我说的是 升序排序,对,就是升序排序,我这里先挖坑,下一个文章再填,也就是说,这个现在只能用来升序(滑稽.jpg)
但是,但是,,为了完成老师的作业,还是有办法的
(代码中的数,我用()来代替)

int a = ();
int b = ();
System.out.println(a>b?(Arrays.toString(new int[]{a,b})):(Arrays.toString(new int[]{b,a})));

阿西巴,这个代码高深,装逼能力极强,这个下一篇文章我对 Arrays进行介绍,到时候自然就懂这个代码了。


好啦,时间也不早了,今天的内容就到这些了,下一篇文章 我将对 Arrays 进行介绍,还有我是怎么写老师布置的作业的
在Java入坑的路上,越走越远。
我的压力也没有很大


发布了18 篇原创文章 · 获赞 14 · 访问量 4081

猜你喜欢

转载自blog.csdn.net/MineSu/article/details/104662380