how2j.cn

三元操作符
:?

本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



2分4秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



示例 1 : 三元操作符   
示例 2 : 练习-判断是否是工作日   
示例 3 : 答案-判断是否是工作日   

示例 1 :

三元操作符

表达式?值1:值2
如果表达式为真 返回值1
如果表达式为假 返回值2

关于if语句的详解讲解在后面章节
public class HelloWorld { public static void main(String[] args) { int i = 5; int j = 6; int k = i < j ? 99 : 88; // 相当于 if (i < j) { k = 99; } else { k = 88; } System.out.println(k); } }
public class HelloWorld {
	public static void main(String[] args) {

		int i = 5;
		int j = 6;

		int k = i < j ? 99 : 88;

		// 相当于
		if (i < j) {
			k = 99;
		} else {
			k = 88;
		}

		System.out.println(k);

	}
}
示例 2 :

练习-判断是否是工作日

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
通过Scanner输入一个1-7之间的整数,使用三元操作符判断是工作日还是周末?
练习-判断是否是工作日
示例 3 :

答案-判断是否是工作日

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

1分57秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)


import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("今天是周几 ?"); int day = s.nextInt(); String status= day>=6?"周末":"工作日"; System.out.println("今天是 " + status); } }
import java.util.Scanner;
 
public class HelloWorld {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("今天是周几 ?");
        int day = s.nextInt();
        String status= day>=6?"周末":"工作日";
        System.out.println("今天是 " + status);
    }
}


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2017-12-10 这样写是不是还行?
姚聪



这样写是不是还行?
System.out.print("今天是星期几?请输入一个整数:");
int day=input.nextInt();
String week=(day>=1&&day<=7)?(day<=5?"工作日":"周末"):"输入错误";
System.out.println(week);

							


5 个答案

学生new 答案时间:2018-02-13
Scanner s = new Scanner(System.in) ; System.out.println( "请输入是星期几 : " ) ; int m = s.nextInt() ; String k = m > 5 ? "周末" : "工作日" ; if ( m > 7 || m < 1 ) System.out.println( "输入的数据不合法 ! "); else System.out.println( "今天是" + k + "!");

JAVA自学 答案时间:2018-01-27
小桥流水 答案时间:2018-01-15
Scanner scanner = new Scanner(System.in); System.out.println("请输入今天是星期几"); int day = scanner.nextInt(); String dayOne = (day==6||day==7)?"今天是不上班":"今天上班"; System.out.println(dayOne);

姚聪 答案时间:2017-12-18
我是老姐:)

WYWY123 答案时间:2017-12-11
还行老哥




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-08-16 感觉写的代码好冗杂,可以怎么样精简吗?
0maino0000



功能一样的前提下,可以怎么样修改达到精简的目的?
System.out.println("***请输入1-7之间的一个整数***");
			int a = scanner.nextInt();
			String i = "今天是工作日";
			String j = "今天是周末";
			if(a<=0||a>7){
				System.out.println("你输入的数字有误!请重新输入(2次):");
				a = scanner.nextInt();
				if(a<=0||a>7){
					System.out.println("你输入的数字有误!请重新输入(1次):");
					a = scanner.nextInt();
					if(a<=0||a>7){
						System.out.println("你输入的数字有误!程序结束!");
					}
					else{			
					String k = a < 6 ? i:j;
					System.out.println(k);
					}
				}
				else{
					String k = a < 6 ? i:j;
					System.out.println(k);
					}
			}
			else{
					String k = a < 6 ? i:j;
					System.out.println(k);
				}
		}

							


11 个答案

java_Sh 答案时间:2017-12-05
package j2se; import java.util.Scanner; public class Workday_or_Offday { public static void main(String[] args) { Scanner whatday = new Scanner(System.in); System.out.println("你知道今天是星期几吗?请用1-7告诉我好吗?"); int day = whatday.nextInt(); System.out.println( day >= 1 && day <= 7 ? day <= 5 ? "工作日" : "休息日" :"你骗我"); } }

天刚刚破晓丶 答案时间:2017-12-04
天刚刚破晓丶 答案时间:2017-12-04
rampage 答案时间:2017-11-05
Scanner s=new Scanner(System.in);
		int a1=s.nextInt();
		boolean i=(a1<=5?true:false);
		System.out.println("today is work day:"+i);
		System.out.println("today is week day:"+i);

xen 答案时间:2017-10-20
System.out.println(day>=1 && day <= 7 ? day <=5 ? "工作日" :"休息日":"日期非法" );

Cscar 答案时间:2017-10-17
判断日期繁琐了一点

孤羽 答案时间:2017-10-06
想起一个问题,如果非要皮一波输入小数或者负数怎么办?......星期几可没有小数或者负数还有0。 写完发现输入0也会提示是负的,开始没有考虑到,懒得加了,太不美观......

捕时人 答案时间:2017-10-05
失误,上一条中的“|”符号应为“&”符号。

捕时人 答案时间:2017-10-05
可以一步到位的。 值得注意:三目运算符返回的是值,所以可以直接print出来
System.out.println(a>=1|a<=7?(a<=5?"工作日":"周末"):"错误");

Blizzard丶 答案时间:2017-10-03
稍微改了一下 0 0 你看看这样是否简化了些

0maino0000 答案时间:2017-08-16
看到这个代码,觉得自己写的好烂呀。但是我又想保留那个重新输入的功能。。。。
System.out.println("今天星期几?");
Scanner scanner001=new Scanner(System.in);
int day=scanner001.nextInt();
String k=day<6? (day<=0? "输入错误":"工作日"):(day>7? "输入错误":"休息日");
System.out.println(k);




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-03-18 答案
2016-10-12 跟答案不一样。




提问之前请登陆
关于 JAVA 基础-操作符-三元操作符 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 389538688
站长会在每个工作日早上尽量回答提问(如果有漏掉没有回答的,请进群提醒一下)
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
站长是玻璃心,提问的时候请语气温柔些 kiss~
截止2017-5-19日累计提问 1638个,站长回答了 1546个
截止2017-8-15日累计提问 2788个,站长回答了 2544个

上传截图