主页 > 知识库 > 网络编程 > JSP/Java >

Java中的byte类型及用if-else对三个数排序(2)

来源:中国IT实验室 作者:佚名 发表于:2013-07-15 15:18  点击:
3 行和4 行的区别:编译器在编译时,在判断右边数值的时候发现是 int 类型(是常量),但会判断是不是在 byte 类型(-128~127)范围之内,如果在这个范围之中的话,会给右边的 int 类型做默认的强制转换,把最后的一个

 3 行和4 行的区别:编译器在编译时,在判断右边数值的时候发现是 int 类型(是“常量”),但会判断是不是在 byte 类型(-128~127)范围之内,如果在这个范围之中的话,会给右边的 int 类型做默认的强制转换,把最后的一个字节赋值到了 b3 这个变量当中,b1 和 b2 是“变量”意味着这两个值不确定、可能随时变化,编译器无法检查,也无法确定是否在 byte 类型范围之内,检查不了就会报错(可能丢失精度),如果是“常量”编译器就能够判断。  2、输入 3 个数,再按从小到大的顺序输出
  过程:
  1,导入类 util.java
  2,创建 scanner 对象
  3,调用 scanner 对象的 nextInt() 方法返回一个 int 类型数据
  4,排序,先对 num1 和 num2 排序,num1 存放小的,num2 存放大的,num3 就只有三个可能
  ?num3? num1 ?num3? num2 ?num3?
  ----------------+----------------------+--------------->
  小 大
  code list:
  [java]
  import java.util.Scanner;
  public class TestSort {
  public static void main(String[] args) {
  Scanner scanner = new Scanner(System.in);
  System.out.print("num1=");
  int num1 = scanner.nextInt();
  System.out.print("num2=");
  int num2 = scanner.nextInt();
  System.out.print("num3=");
  int num3 = scanner.nextInt();
  int tmp;
  if (num1 > num2) {
  tmp = num1;
  num1 = num2;
  num2 = tmp;
  }
  if (num3 > num2) {
  System.out.print(num1 + " " + num2 + " " + num3);
  } else if (num3 > num1) {
  System.out.print(num1 + " " + num3 + " " + num2);
  } else {
  System.out.print(num3 + " " + num1 + " " + num2);
  }
  }
  }

有帮助
(0)
0%
没帮助
(0)
0%