JAVA57_JAVA_孙明明_第二次

一、void public method(){

                int i=1,j;

               float f1=0.1;  //0.1后面要加f 

               float f2=123; //123后面加f

                long l1=12345678,l2=8888888888   //后面要带l

               byte b1=1,b2=2,b3=129;// b3应该改为int型 因为byte类型的表数范围是-128~127

               j=j+10;  //此处j没有被赋值,因此错误。

               i=i/10; 

                i=i*0.1;// i*0.1是double型, 而等号左边的i是int型  所以要自动转换,写成i=(int)i*0.1;

               char c1='a',ca=125;

                byte  b = b1-b2; //b1-b2 的结果为int 型要强制转换成byte型, 写成 byte b=(byte)(b1-b2);

                char c =c1+c2-1; //c1+c2-1结果为int 型要强制转换成char型,写成char c=(char)(c1+c2-1);

                float  f3= f1+f2;

     float  f4= f1+f2*0.1;//0.1为double型, 所以最后的结果要写成double型。即double f4=f1+f2*0.1;

         double d =d1*i+j; //j 没有被赋值

            float f =(float)(d1*5+d2);

}

二、 (操作符)有如下代码:

    int a=5;

    int b=(a++)+(--a)+(++a);

问执行完后, b 的结果是多少?

答案:  (a++)=5   此时a=6

             (--a )=5 此时a=5

              (++a)=6 此时a=6

          所以 b=16.

三、(基本类型运算)一家商场在举行打折促销,所有商品都进行8折优惠。一位程序员把这个逻辑写成:

             short  price=....;//先计算出原价

             short  realPrice=price*8/10;//在计算出打折之后的价格

问:这段代码是否正确?如果正确,假设price为100, 那计算之后的realPrice值为多少?如果不正确,应该怎么改正?把完整代码写出来

答案:  这段代码是错误的。short是段整型,price*8/10 正确的结果是带小数的所以应该是double类型;

正确的代码如下:

import java.util.Scanner;


public class SunMingming1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
     System.out.println("请输入消费金额:");
        Scanner sc =new Scanner(System.in);
            double b=sc.nextDouble();
            double c=b*8/10;
        System.out.println("打8折后的价格为:"+c);
            } 
            }

四、关于运算符的作业

随机给出一个五位数的彩票号码(正整数),程序输出该彩票号码中的数字及相关信息

(1)在主类的main方法中声明一个用于存放彩票号码的int型变量ticketNumber,以及用于存放彩票号码中个位、十位、百位、千位和万位上数字的byte型变量a1、a2、a3、a4、a5.

(2)依次求出ticketNumber 中个位、十位、百位、千位和万位上数字,并将这些数字依次赋值给变量a1、a2、a3、a4、a5.

(3)输出表达式a1+a2+a3+a4+a5的值

(4)输出表达式a1*a2*a3*a4*a5的值

import java.util.Scanner;


public class SunMingming1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
int  tickerNumber;
 byte a1,a2,a3,a4,a5;
 System.out.println("输入一个五位数的彩票号码:");
 Scanner sc=new Scanner(System.in);
  int b=sc.nextInt();
  a5=(byte) (b/10000);
  a4=(byte)((b/1000)%10);
  a3=(byte)((b/100)%10); 
  a2=(byte)((b/10)%10);
  a1=(byte)(b%10);
  System.out.println("万位上的数字为:"+a5);
  System.out.println("千位上的数字为:"+a4);
  System.out.println("百位上的数字为:"+a3);
  System.out.println("十位上的数字为:"+a2);
  System.out.println("个位上的数字为:"+a1);
  System.out.println("a1+a2+a3+a4+a5"+"="+a1+a2+a3+a4+a5);
  System.out.println("a1*a2*a3*a4*a5"+"="+a1*a2*a3*a4*a5);
    } 
            }
    
    

转载于:https://my.oschina.net/u/3715009/blog/1557715

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值