三元运算符
格式:关系表达式?表达式1:表达式2
范例:a>b?a:b
计算规则:首先计算关系表达式的值
如果为true,表达式1的值就是运算结果
如果为false,表达式2的值就是运算结果
public class HelloWorld{
public static void main(String[] args){
int a=10;
int b=20;
int max=a>b?a:b;
System.out.println("max:"+max);
}
}
该程序将输出max=20,在其中包括了运算符+操作
两只老虎案例
两只老虎 一只180kg,另一只200kg,判断体重是否相等
(1)定义两个变量用来保存老虎体重
int weight1=180;
int weight2=200;
(2)用三元运算符判断
boolean b=(weight1==weight2)?true:false
三个和尚案例
三个和尚比身高
(1)定义变量
int height1=210
int height2=160
int height3=150
(2使用三元运算符
int tempheight=height2>height3?height2:height3;
int max=tempheight>height1?tempheight:height1
System.out.println("max:"+max);
这是关于三个变量中使用三元运算符的案例
数据输入
数据输入Scanner的基本步骤
(1)导包
import java.util.Scanner;
导包的动作必须在类的定义的前面
(2)创建对象
Scanner sc=new.Scanner(System.in);
上边的格式中只有sc是变量,只有它可以改变
(3)接收数据
int x=sc.nextInt();
上边的格式只有x是变量,只有它可以改变
三个和尚升级版
未知三个和尚的身高,等到输入之后再进行排列
import java.util.Scanner;
public class HelloWorld{
public static void main{
Scanner sc=new.Scanner(System.in);
int height1=sc.nextInt();
int height2=sc.nextInt();
int height3=sc.nextInt();
int tempheignt=height2>height3?height2:height3
int max=tempheighy>height1?tempheight:height1
System.out.println("max:"+max);
}
}
流程控制
在一个程序的执行过程
流程控制语句分为(1)顺序结构
(2)分支结构-if、switch
(3)循环结构-for、while、do…while
if语句
第一个格式:
if(关系表达式){
语句体;
}
执行流程
(1)首先计算关系表达式的值
(2)如果关系表达式的值为true,就返回执行语句体
(3)如果关系表达式的值为false,就不执行
(4)继续执行后面的语句
第二个if格式
if(关系表达式){
语句体1;
}else{
语句体2;
}
第三个if格式
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}…else{
语句体n;
}
考试奖励
需求:小明快要期末考试了,根据不同的考试成绩将会得到不同的奖励,用程序实现小明应该得到什么奖励,并在控制台输出。
95分~100分 山地自行车
94分~90分 游乐场游玩
89分~80分 变形金刚一个
低于80分 胖揍一顿
import java.util.Scanner;
public class HelloWorld{
public static void main(String[] args);
Scanner sc=new.Scanner(System.in);
System.out.println("请输入你的分数");
int score=sc.nextInt();
if(score>=95&&score<=100){
System.out.println("奖励山地车一辆");
}else if(score<95&&score>=90){
System.out.println("奖励游乐场游玩一次");
}else if(score<90&&score>=80){
System.out.println("奖励变形金刚一个");
}else if(score<80){
System.out.println("考这么点分等着挨揍吧");
}else{
System.out.println("有这个分数吗,敢糊弄你爹,等着挨揍吧");
}
System.out.println("end");
}
}
Switch语句
格式
Switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
.。。。
default:
语句体n+1;
[break;]
}
格式说明:(1)表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是字符串String。
(2)case后面跟的是要和表达式对比的值。
(3)break表示中断、结束的意思,用来结束Switch语句。
(4)default表示所有情况都不匹配的时候就执行他。
执行流程
(1)先计算表达式的值(2)和后面的case值相比较,如果有对应的值就执行相应语句,在执行过程中,遇到break就结束(3)如果所有的case都不匹配则执行default
for循环语句
组成部分(1)初始化语句:用来表示循环开启的初始状态
(2)条件判断语句:用来表示循环反复执行的条件,判断循环能否一直执行
(3)循环体语句:用来表示反复执行的内容,也就是循环反复执行的事
(4)条件控制语句:用来表示循环执行中每次变化的内容,也就是控制循环能否一直执行下去
格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
执行流程
(1)执行初始语句(2)执行条件判断语句看其结果是true还是false,是true就继续,是false就结束(3)执行循环体语句(4)回到条件控制语句(5)再回到2
输出数据
需求:在控制台输出1-5和5-1的数据
分析:反复进行输出的动作,使用循环结构
for(int i=1;i<=5;i++){
System.out.println(i);
}
求和
for(int i=1;i<=5;i++){
sum+=i;
}
System.out.println("sum:"+sum);
求偶数和
for(int i=1;i<=100;i++){
if(i%2==0){
sum +=i;
}
}
system.out.println("1-100之间的偶数和是:"+sum);
while循环语句
public class whileTest{
public static void main(String[] args){
int count=0;
double paper=0.1;
int zf=8844430;
while(paper<=zf){
paper*=2;
count++;
}
System.out,println("需要折叠"+count+“次”);
}
}
do…while循环语句格式
基本格式
do{
循环体语句
}while(条件判断语句);
完整格式
初始化语句
do{
循环体语句;
条件控制语句;
}while(条件判断语句)
三种循环的区别
(1)for循环和while循环先判断条件是否成立,然后决定是否执行该循环体(先判断后执行)
(2)do…while循环先执行一次循环体,然后判断条件是否从成立,是否继续执行循环体(先执行后判断)
for和while的区别
(1)条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在循环结束后就不能再次访问
(2)条件控制语句所控制的自增变量,对于while来说不归属其语法结构中,在while循环结束后该变量还可以继续使用