使用if语句对四个整数排序及三目运算符对三个整数的排序

使用if语句对四个整数排序及三目运算符对三个整数的排序

代码在最后

三目运算符

语法格式 [x > y ? x : y]
布尔值 ? 值1: 值2; 会返回一个结果,结果是 值1 或 值2 , 值1 和 值2 的类型可以不同

运算规则:先确定布尔值是真还是假 , 是真整个表达式结束返回值1作为表达式的结果 , 反之结束表达式 以值2作为表达式的结果 ;
使用三元运算符可以代替简单的if语句 ;

三元表达式的返回值结果:
值1 值2 可以是任意类型 , 两个值可以是不同类型 ;但是接收的时候会有问题 ;

if语句

if条件语句是使用布尔表达式或布尔值作为分支条件来进行分支控制;
第一种形式:单选择结构
在这里插入图片描述
语法格式:

if(布尔表达式){
    //如果表示式结果为true,则执行该语句块;如果为false,则跳过该语句块向下执行;
}  

执行流程 : 先确定小括号里的值 , 如果值为true 那么执行后面大括号的所有内容 , 执行完毕后结束整个 if 语句
如果值为 false ; 不执行大括号的内容 , 直接结束if语句 ;

第二种形式:双选择结构 双分支if
在这里插入图片描述
语法格式:

if(布尔表达式){
    //如果布尔表达式结果为true,则执行该语句块;
}else{
    //如果布尔表达式结果为false,则执行该语句块;
} 

执行规则:当程序遇到双分支if时 , 此时if else是一个整体 ;
程序会首先判断if后小括号的值 , 如果值
为真 : 执行if后的语句块 , 语句块完毕之后 结束整个if语句
为假 : 执行else后的语句块 , 语句块完毕之后 结束整个if语句

第三种形式:多选择结构 多分支if
在这里插入图片描述
语法格式:

if(布尔表达式1){
    //如果布尔表达式1结果为true,则执行该语句块1;
}else if(布尔表达式2){
    //如果布尔表达式2结果为true,则执行该语句块2;
}
...
else if(布尔表达式n){
    //如果布尔表达式n结果为true,则执行该语句块n;
else{
    //如果以上条件都为false,则执行该语句块n+1;
    // 可选语句   接盘语句
}  

执行流程:
当程序执行遇到多分枝if时 , 它们是一个整体 ;

会首先判断第一个if后小括号的值 , 如果值为真 : 执行其后的第一个语句块 ; 语句块执行完毕之后 结束整个if语句
(1)为假 : 去判断 下一个if后的小括号 , 如果值 (2)为真 : (1) 为假 : (2)多分支if可能需要进行多次判断 , 才能执行语句块 ;
else 为可选语句 , 当所有的if 都判断条件不成立 , 则会执行else 语句 , 执行完毕结束整个if语句

.

完整代码:

package day02;

import java.util.Scanner;
//2019/03/09 9:35
public class TestSort {
	public static void main(String[] args){
//		show1();
		show2();
	}
	
	/**
	 * 使用if语句对三个整数排序
	 */
	public static void show2(){
		System.out.println("TestSort.show2()");
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个整数:");
		int x = sc.nextInt();
		System.out.println("请输入第二个整数:");
		int y = sc.nextInt();
		System.out.println("请输入第三个整数:");
		int z = sc.nextInt();
		System.out.println("请输入第四个整数:");
		int xyz = sc.nextInt();
		
		System.out.println("录入的数据是: " + xyz + "," + x + "," + y + "," + z);
		
		//if语句排序
		int sum = 0;
		
		{ //把xyz变成最小数
			if(xyz > x){
				sum = xyz;
				xyz = x;
				x = sum;
			}
			if(xyz > y){
				sum = xyz;
				xyz = y;
				y = sum;
			}
			if(xyz > z){
				sum = xyz;
				xyz = z;
				z = sum;
			}
			
		}
		
		{//这段代码把x变成次小数
		if(x > y ){
			sum = x;
			x = y;
			y = sum;
		}
		if(x > z){
			sum = x;
			x = z;
			z = sum;
		}
		}
		
		if(y > z){
			sum = y;
			y = z;
			z = sum;
		}
		
		
		System.out.println("排序的数据是: " + xyz + "," + x + "," + y + "," + z);
	}
	
	/**
	 * 三目运算符对三个整数的排序
	 */
	public static void show1(){
		//syst 快捷键
		System.out.println("TestSort.show1()");
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个整数:");
		int x = sc.nextInt();
		System.out.println("请输入第二个整数:");
		int y = sc.nextInt();
		System.out.println("请输入第三个整数:");
		int z = sc.nextInt();
		
		//声明是三个变量 分别是 最小值 中间值 最大值
		int min,mid,max;
		
		System.out.println(" 录入的数字是:" + x + "," + y + "," + z);
		//确定最小值
		min = x >= y ? (y >= z ? z : y):(x >= z ? z : x);
		max = x >= y ? (x >= z ? x : z) :(y >= z ? y : z);
		//中间数
//		mid = x < max && x > min ? x : (y < max && y > min ? y : z);//1 1 3 出错,1 3  3       3,3,1 -> 1,1,3
//		mid = (x == min || x == max) ? (y == min || y == max ? z :y) : x; //错误的判断方法
		mid= x > y ? ( y > z ? y : ( x > z ? z : x )) : ( y < z ? y : (x > z ? x : z)); //方法一
//		mid = (x + y + z) - (min + max);   //方法二
		System.out.println(" 排序的数字是:" + min + "," + mid + "," + max);
	}

}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在C++中,可以使用嵌套的三目运算符来实现多个条件的选择。例如: ``` int a = 10, b = 20, c = 30; int max = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c); ``` 上面的代码中,首先比较a和b的大小,如果a大于b,则继续比较a和c的大小,选出最大值;否则,比较b和c的大小,选出最大值。最终将最大值赋值给max变量。这里使用了两个嵌套的三目运算符,可以实现多个条件的选择。 ### 回答2: 三目运算符是C语言中的一种条件运算符,其基本格式为:表达式1 ? 表达式2 : 表达式3。 多个条件的三目运算符可以通过嵌套使用来实现。例如,判断一个年份是否为闰年即可使用三目运算符。根据闰年的定义,如果一个年份能被4整除但不能被100整除,或者能被400整除,则为闰年,否则为平年。 可以使用两个三目运算符来实现这个判断逻辑,示例代码如下: ```c int year = 2022; int isLeapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? 1 : 0; printf("%d年是%s", year, isLeapYear ? "闰年" : "平年"); ``` 在上述代码中,首先使用两个条件判断年份是否为闰年,如果满足条件则 isLeapYear 赋值为1,表示是闰年,否则赋值为0,表示是平年。然后使用一个三目运算符判断 isLeapYear 的值,如果为1则输出"闰年",否则输出"平年"。 因此,在C语言中使用多个条件的三目运算符,可以通过嵌套使用来实现复杂的条件判断。这种方式可以简洁地表达复杂逻辑,并提高代码的可读性。 ### 回答3: 三目运算符是C语言中的一个特殊运算符,也称为条件运算符。它由三部分组成:条件表达式、真值表达式和假值表达式。 条件表达式的作用是判断一个条件是否成立,可以是任意的逻辑表达式、关系表达式或者算术表达式。真值表达式和假值表达式分别指的是当条件表达式为真时的返回值和当条件表达式为假时的返回值。 三目运算符的语法如下所示: 条件表达式 ? 真值表达式 : 假值表达式 当条件表达式为真时,整个三目运算符的返回值为真值表达式的值;当条件表达式为假时,返回值为假值表达式的值。因此,通过三目运算符可以实现根据条件的不同选择不同的返回值。 三目运算符的一种常见应用是简化if-else语句的写法,使代码更加简洁和易读。 例如,假设有两个整数a和b,需要比较它们的大小并输出较大的数,可以使用三目运算符来实现: int max = (a > b) ? a : b; printf("较大的数为:%d\n", max); 上述代码中,条件表达式为a > b,若成立则返回a的值,否则返回b的值,将返回值赋给变量max,最后输出max的值即为较大的数。 总而言之,三目运算符是C语言中一种简洁的条件运算符,可以根据条件的不同选择不同的返回值。它的语法简单明了,可以用来代替繁琐的if-else语句,使代码更加简洁和易读。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值