x:
y);
//intz=((x==y)?
x:
y);
//报错
//intz=((x=y)?
x:
y);
System.out.println("z:
"+z);
}
}
2练习
/*
练习:
获取两个整数中的最大值
获取三个整数中的最大值
比较两个整数是否相同
*/
classOperatorTest{
publicstaticvoidmain(String[]args){
//获取两个整数中的最大值
intx=100;
inty=200;
intmax=(x>y?
x:
y);
System.out.println("max:
"+max);
System.out.println("--------");
//获取三个整数中的最大值
inta=10;
intb=30;
intc=20;
//分两步:
//A:
先比较a,b的最大值
//B:
拿a,b的最大值在和c进行比较
inttemp=((a>b)?
a:
b);
//System.out.println(temp);
intmax1=(temp>c?
temp:
c);
System.out.println("max1:
"+max1);
//一步搞定
//intmax2=(a>b)?
((a>c)?
a:
c):
((b>c)?
b:
c);
//这种做法不推荐。
//intmax2=a>b?
a>c?
a:
c:
b>c?
b:
c;
//System.out.println("max2:
"+max2);
System.out.println("--------");
//比较两个整数是否相同
intm=100;
intn=200;
//booleanflag=(m==n)?
true:
false;
booleanflag=(m==n);
System.out.println(flag);
}
}
3键盘录入
/*
为了让程序的数据更符合开发的数据,我们就加入了键盘录入。
让程序更灵活一下。
那么,我们如何实现键盘数据的录入呢?
A:
导包
格式:
importjava.util.Scanner;
位置:
在class上面。
B:
创建键盘录入对象
格式:
Scannersc=newScanner(System.in);
C:
通过对象获取数据
格式:
intx=sc.nextInt();
*/
importjava.util.Scanner;
classScannerDemo{
publicstaticvoidmain(String[]args){
//创建键盘录入数据对象
Scannersc=newScanner(System.in);
System.out.println("请你输入一个数据:
");
intx=sc.nextInt();
System.out.println("你输入的数据是:
"+x);
}
}
4练习
/*
键盘录入练习:
键盘录入两个数据,并对这两个数据求和,输出其结果
*/
importjava.util.Scanner;
classScannerTest{
publicstaticvoidmain(String[]args){
//键盘录入两个数据,并对这两个数据求和,输出其结果
//创建键盘录入对象
Scannersc=newScanner(System.in);
System.out.println("请输入第一个数据:
");
intx=sc.nextInt();
System.out.println("请输入第二个数据:
");
inty=sc.nextInt();
//把键盘录入的数据进行相加即可
intsum=(x+y);
System.out.println("sum:
"+sum);
}
}
练习2
/*
键盘录入练习:
键盘录入两个数据,获取这两个数据中的最大值
*/
importjava.util.Scanner;
classScannerTest2{
publicstaticvoidmain(String[]args){
//创建键盘录入对象
Scannersc=newScanner(System.in);
System.out.println("请输入第一个数据:
");
inta=sc.nextInt();
System.out.println("请输入第二个数据:
");
intb=sc.nextInt();
//获取这两个数据中的最大值
intmax=(a>b?
a:
b);
System.out.println("max:
"+max);
}
}
练习3
/*
练习:
键盘录入三个数据,获取这三个数据中的最大值
键盘录入两个数据,比较这两个数据是否相等
*/
importjava.util.Scanner;
classScannerTest3{
publicstaticvoidmain(String[]args){
//键盘录入三个数据,获取这三个数据中的最大值
//创建键盘录入对象
Scannersc=newScanner(System.in);
System.out.println("请输入第一个数据:
");
inta=sc.nextInt();
System.out.println("请输入第二个数据:
");
intb=sc.nextInt();
System.out.println("请输入第三个数据:
");
intc=sc.nextInt();
//获取这三个数据中的最大值
inttemp=((a>b)?
a:
b);
intmax=(temp>c?
temp:
c);
System.out.println("max:
"+max);
System.out.println("------------------");
//键盘录入两个数据
System.out.println("请输入第一个数据:
");
intx=sc.nextInt();
System.out.println("请输入第二个数据:
");
inty=sc.nextInt();
//比较这两个数据是否相等
booleanflag=(x==y);
System.out.println("flag:
"+flag);
}
}
3顺序结构
/*
流程控制语句:
可以控制程序的执行流程。
分类:
顺序结构
选择结构
循环结构
顺序结构:
从上往下,依次执行。
*/
classShunXuJieGouDemo{
publicstaticvoidmain(String[]args){
System.out.println("程序开始了");
System.out.println("我爱Java");
System.out.println("程序结束了");
}
}
4if语句
/*
选择结构:
if语句
switch语句
if语句:
格式1
格式2
格式3
if语句的格式:
if(比较表达式){
语句体;
}
执行流程:
先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体;
如果是false,就不执行语句体;
*/
classIfDemo{
publicstaticvoidmain(String[]args){
intx=10;
if(x==10){
System.out.println("x等于10");
}
if(x==20){
System.out.println("x等于20");
}
System.out.println("over");
}
}
/*
if语句的注意事项:
A:
比较表达式无论简单还是复杂,结果必须是boolean类型
B:
if语句控制的语句体如果是一条语句,大括号可以省略;
如果是多条语句,就不能省略。
建议永远不要省略。
C:
一般来说:
有左大括号就没有分号,有分号就没有左大括号
*/
classIfDemo2{
publicstaticvoidmain(String[]args){
intx=10;
if(x==10){
System.out.println("x等于10");
}
if((x>5)||(x==10)){
System.out.println("x大于或者等于10");
}
System.out.println("-------------------");
inta=100;
/*
if(a==100){
System.out.println("a的值是100");
}
*/
if(a!
=100){
System.out.println("a的值是100");
System.out.println("over");
}
System.out.println("-------------------");
intb=100;
if(b!
=100);//这里其实是有语句体的,只不过是空语句体。
//代码块
{
System.out.println("b的值是100");
System.out.println("over");
}
}
}
5if语句格式2
/*
if语句格式2:
if(比较表达式){
语句体1;
}else{
语句体2;
}
执行流程:
首先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体1;
如果是false,就执行语句体2;
注意:
else后面是没有比较表达式的,只有if后面有。
*/
classIfDemo3{
publicstaticvoidmain(String[]args){
//判断两个数据是否相等
inta=10;
intb=20;
if(a==b){
System.out.println("a等于b");
}else{
System.out.println("a不等于b");
}
}
}
/*
由于if语句的第二种格式刚才也完成了三元运算符可以完成的效果。
所以,我们就认为他们可以完成一样的操作。
但是,他们就一点区别没有吗?
肯定不是。
区别:
三元运算符实现的,都可以采用if语句实现。
反之不成立。
什么时候if语句实现不能用三元改进呢?
当if语句控制的操作是一个输出语句的时候就不能。
为什么呢?
因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
*/
classIfDemo4{
publicstaticvoidmain(String[]args){
//获取两个数据的最大值
inta=10;
intb=20;
//用if语句实现
intmax1;
if(a>b){
max1=a;
}else{
max1=b;
}
System.out.println("max1:
"+max1);
//用三元改进
intmax2=(a>b)?
a:
b;
System.out.println("max2:
"+max2);
System.out.println("----------");
//判断一个数据是奇数还是偶数,并输出是奇数还是偶数
intx=100;
if(x%2==0){
System.out.println("100是一个偶数");
}else{
System.out.println("100是一个奇数");
}
//用三元改进
//这种改进是错误的。
//Strings=(x%2==0)?
System.out.println("100是一个偶数");:
System.out.println("100是一个奇数");;
}
}
6if语句格式3
/*
if语句的格式3:
if(比较表达式1){
语句体1;
}elseif(比较表达式2){
语句体2;
}elseif(比较表达式3){
语句体3;
}
...
else{
语句体n+1;
}
执行流程:
首先计算比较表达式1看其返回值是true还是false,
如果是true,就执行语句体1,if语句结束。
如果是false,接着计算比较表达式2看其返回值是true还是false,
如果是true,就执行语句体2,if语句结束。
如果是false,接着计算比较表达式3看其返回值是true还是false,
...
如果都是false,就执行语句体n+1。
*/
importjava.util.Scanner;
classIfDemo5{
publicstaticvoidmain(String[]args){
//需求:
键盘录入一个成绩,判断并输出成绩的等级。
/*
90-100优秀
80-90好
70-80良
60-70及格
0-60不及格
*/
//创建键盘录入对象
Scannersc=newScanner(System.in);
//录入数据
System.out.println("请输入你的考试成绩:
");
intscore=sc.nextInt();
/*
if(score>=90&&score<=100){
System.out.println("优秀");
}elseif(score>=80&&score<90){
System.out.println("好");
}elseif(score>=70&&score<80){
System.out.println("良");
}elseif(score>=60&&score<70){
System.out.println("及格");
}else{
System.out.println("不及格");
}
*/
//这样写已经满足我的基本要求,但是可能别人在使用的时候,不会按照你要求的数据给出了。
//在做一个程序的基本测试的时候,一定要考虑这样的几个问题:
//正确数据,错误数据,边界数据。
//而我们刚才写的程序并没有处理错误数据,所以这个程序不是很好,要改进
/*
if(score>=90&&score<=100){
System.out.println("优秀");
}elseif(score>=80&&score<90){
System.out.println("好");
}elseif(score>=70&&score<80){
System.out.println("良");
}elseif(score>=60&&score<70){
System.out.println("及格");
}elseif(score>=0&&score<60){
System.out.println("不及格");
}else{
System.out.println("你输入的成绩有误");
}
*/
//另一种判断改进
if(score<0||score>100){
System.out.println("你输入的成绩有误");
}elseif(score>=90&&score<=100){
System.out.println("优秀");
}elseif(score>=80&&score<90){
System.out.println("好");
}elseif(score>=70&&score<80){
System.out.println("良");
}elseif(score>=60&&score<70){
System.out.println("及格");
}else{
System.out.println("不及格");
}
}
}
7
/*
if语句格式2的练习:
A:
获取两个数据中较大的值
B:
判断一个数据是奇数还是偶数,并输出是奇数还是偶数
*/
importjava.util.Scanner;
classIfTest{
publicstaticvoidmain(String[]args){
//创建键盘录入对象
Scannersc=newScanner(System.in);
//获取两个数据中较大的值
System.out.println("请输入第一个数据:
");
inta=sc.nextInt();
System.out.println("请输入第二个数据:
");
intb=sc.nextInt();
//定义一个变量接收最大值
intmax;
if(a>b){
max=a;
}else{
max=b;
}
System.out.println("max:
"+max);
System.out.println("----------------");
//判断一个数据是奇数还是偶数
System.out.println("请输入你要判断的数据:
");
intx=sc.nextInt();
if(x%2==0){
System.out.println(x+"这个数据是偶数");
}else{
System.out.println(x+"这个数据是奇数");
}
}
}
8三种if的比较
/*
三种if语句分别适合做什么事情呢?
格式1:
适合做单个判断
格式2:
适合做两个判断
格式3:
适合做多个判断
需求:
键盘录入x的值,计算出y的并输出。
x>=3y=2x+1;
-1<=x<3y=2x;
x<=-1y=2x–1;
分析:
A:
由于数据要键盘录入,所以必须使用Scanner。
B:
由于是三种判断,所以我们选择if语句格式3。
*/
importjava.util.Scanner;
classIfTest2{
publicstaticvoidmain(String[]args){
//创建键盘录入对象
Scannersc=newScanner(System.in);
System.out.println("请输入x的值:
");
intx=sc.nextInt();
//定义一个y
inty;
//用if语句格式3进行判断
if(x>=3){
y=2*x+1;
}elseif(x>=-1&&x<3){
y=2*x;
}else{
y=2*x-1;
}
System.out.println("y:
"+y);
}
}
9键盘录入
/*
键盘录入月份的值,输出对应的季节。
春3,4,5
夏6,7,8
秋9,10,11
冬12,1,2
分析:
A:
键盘录入月份的值,所以我们要使用Scanner。
B:
我们应该判断这个月份在那个季节,而这个判断情况较多,所以,用if语句格式3。
if语句的使用场景:
A:
针对表达式是一个boolean类型的判断
B: