A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public class StringDemo {
  2.         public static void main(String[] args){
  3.                 // 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
  4.                 byte[] b = new byte[1];
  5.                 for(byte i=-128; i<=127; i++){
  6.                         b[0] = i;
  7.                         String str = new String(b);
  8.                         System.out.print(str);
  9.                         // 不加判断语句,就会无限循环
  10.                         if(i==127)
  11.                                 break;
  12.                 }       
  13.         }
  14. }
复制代码


本来想看下从-128到127都转换成什么字符,结果就开始无限循环(不加判断语句),是不是因为循环到128时,强制转换成byte类型,进而导致无限循环。

1 个回复

正序浏览
因为循环里是byte 类型 取值范围就是-128-127,你的循环判断条件是<=127
无论怎么i++  i的值都在-128-127之间 所以无限循环了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马