练习:求任意数的绝对值:
//求任意数的绝对值
Scanner in=new Scanner(System.in);
System.out.println("请输入任意实数:");
int d=in.nextInt();
d=d>0?d:-d;
System.out.println("绝对值:"+d);
一:语句:
语句: 以分好结尾的就是一条语句。
分类: 空语句和单条语句,复合语句:
局部变量: 在某个作用域当中有效的变量,称之为局部变量。
全局变量:在类当中定义的变量称之为全局变量。全局变量可以在类当中的任意位置被访问。
二:数据类型的转换:
转换分为两种转换:
(1)自动转换:(隐形转换,向上转型): 小类型---->大类型:
(2)强制转换:(向下转型) 大类型----->小类型
语法: (数据类型)变量名称;
注意:(1)被强制准换的变量,要考虑最大值的问题,和精度损失的问题。
(2)类型之间是否兼容的问题。
三:表达式:
表达式: 有操作数,运算符,以及方法的调用组成的式子就称之为表达式。
算数表达式:
javaSE 当中提供了一个类,类名称为Math。该类提供相应的和数学相关的运算。
Math类:提供了和数学先关的方法。 该类位于lang包当中。lang在使用的时候不要导包,
类当中提供的方法都是static方法。静态方法可以通过类名直接调用。
调用方式:类名.方法名();
方法:
abs("");求绝对值方法;Math.abs("");
max(datatype,datetype1);//求最大值
min();求最小值。
pow(value1,value2);参数value1的value2次幂。
sqrt();开方
round();四舍五入。返回最接近的整数。
ceil(); 天花板方法。返回大于该数的最小整数。 (向上取整)
floor();地板方法。返回小于该数的最大整数。(向下取整)
random();返回一个double类型的值:值位于(0<=x<1.0)。
练习:生成5-10之间的随机数。
//练习:生成一个5-10之间的随机整数:
for(int i=0;i<=20;i++){
int val2=(int)(Math.ceil((Math.random()*6))+4);
System.out.println(val2);
}
for(int i=0;i<=20;i++){
double d5=Math.floor(Math.random()*6)+5;
System.out.println((int)d5);
}
//生成5-11.
for(int i=0;i<=20;i++){
double d5=Math.round(Math.random()*6)+5;
System.out.println((int)d5);
}
//理论是5-10 生成5的几率及其小
for(int i=0;i<=120;i++){
double d5=Math.ceil(Math.random()*5+1)+4;
System.out.println((int)d5);
}
考虑是否能生成6-10.
for(int i=0;i<=20;i++){
double d5=Math.round(Math.random()*4)+6;
System.out.println((int)d5);
}
其他表达式:
四:流程控制:
a:顺序结构: 按照顺序,从上往下依次执行。
b:选择结构(控制): 控制一定的条件,执行某一部分代码。
Java当中提供了两种控制结构,if else 和switch
c:循环结构: 可以在一定的条件下,重复的执行某一部分代码。 (迭代)
选择结构:
if语句:
1:语法:
if(表达式){
...语句块。
}
语法的解释:
表达式:(1)运算结果,必须是boolean类型。
如果表达式的值的为true,执行if对应的语句块。
如果表达式的值为false。不执行。
(2)如果语句块只有一条语句,那么{} 可以省略不写。
2:语法:
if(表达式){
语句块1;
}else{
语句块;
}
解释:(1)表达式必须是boolean类型;
表达式的值如果为true,执行语句块1.
表达式的值为false,执行语句块2.
(2)如果语句块1和语句块2只有一条语句,那么{} 可以省略。
(3)if和else之间不能有任何的其他语句。
(4)if 和else 语句块当中可以嵌套使用 if else
案例:
求两个数的最大值:
Scanner in=new Scanner(System.in);
System.out.println("请输入两个数:");
double a=in.nextDouble();
double b=in.nextDouble();
if(a>b)
System.out.println("最大值="+a);
else
System.out.println("最大值="+b);
此处可用条件运算符 a>b?a:b;
3:语法:
if(){}else if(){
}else if(){ }...
else{ }
特点: if 和else if只能执行其中一个。
案例:给定月份,求月份所属的季节。 int 9;---3,4,5 春季
//给定月份,求月份所属的季节。 int 9;---3,4,5 春季
Scanner in1=new Scanner(System.in);
System.out.println("请输入月份:");
int mounth=in1.nextInt();
if(mounth<1||mounth>12)
System.out.println("输入月份不合法!");
else if(mounth>=3&&mounth<=5)
System.out.println("春季");
else if(mounth>=6&&mounth<=8)
System.out.println("夏季");
else if(mounth>=9&&mounth<=11)
System.out.println("秋季");
else
System.out.println("冬季");
练习: 给定一个分数,打印分数所属的等级。90-100 A 80-89 B 70-79 C 60-69 D 0-59 E 其他 error
// 给定一个分数,打印分数所属的等级。 90-100 A 80-89 B 70-79 C 60-69 D 0-59 E 其他 error
Scanner in2=new Scanner(System.in);
System.out.println("请输入成绩:");
int grade=in2.nextInt();
if(grade<0||grade>100)
System.out.println("error");
else if(grade>=0&&grade<60)
System.out.println("E");
else if(grade>=60&&grade<70)
System.out.println("D");
else if(grade>=70&&grade<80)
System.out.println("C");
else if(grade>=80&&grade<90)
System.out.println("B");
else
System.out.println("A");
作业:(1) 给定等级,打印范围。
//给定等级,打印范围。
Scanner in3=new Scanner(System.in);
System.out.println("请输入等级:");
String g=in3.nextLine();
if(g.equals("A"))
System.out.println("分数范围:90-100");
else if(g.equals("B"))
System.out.println("分数范围:80-89");
else if(g.equals("C"))
System.out.println("分数范围:70-79");
else if(g.equals("D"))
System.out.println("分数范围:60-69");
else if(g.equals("E"))
System.out.println("分数范围:0-59");
else
System.out.println("error");
(2)判断给定年份是平年还是闰年。
判断闰年的标准:能被4整除,且不能被100整除或只能能被400整除。
//判断是平年还是闰年
Scanner in4=new Scanner(System.in);
System.out.println("请输入年份:");
int year=in4.nextInt();
if(year%4==0&&year%100!=0||year%400==0)
System.out.println(year+"年是闰年!");
else
System.out.println(year+"年是平年!");
(3)思考: 三目运算符和if else的区别?参考关于if else 和 三目运算符的效率问题
1.从类型转换上看,因为三目运算符在做判断的时候需要考虑到类型转换的问题,而if else 不需要考虑类型转换。 所以 if else 效率高一点。
2.从总体上看
A:需要考虑到循环自身所占用的时间。
B:需要考虑到赋值以及循环内的其他运算符所占用的时间。
所以 三目运算符效率高一点
(4)给定数字,0-6打印 数字对应的星期: 0-sunday
//给定数字,0-6打印 数字对应的星期: 0-sunday
int date=2;
if(date==0)
System.out.println("Sunday");
else if(date==1)
System.out.println("Monday");
else if(date==2)
System.out.println("Tuesday");
else if(date==3)
System.out.println("Wensday");
else if(date==4)
System.out.println("Thursday");
else if(date==5)
System.out.println("Friday");
else if(date==6)
System.out.println("Saturday");
else
System.out.println("error!");