Java学习第四天

练习:求任意数的绝对值:

	//求任意数的绝对值
    	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!");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值