首页 > 试题广场 >

下列选项不属于代码运行的结果是()   &nbs

[不定项选择题]
下列选项不属于代码运行的结果是()

    import java.io.*;
    public class filesinputoutput {
     public static void main(String[] args) {
           String obj  = "abc";
           byte b[] = obj.getBytes();
           ByteArrayInputStream obj1 = new ByteArrayInputStream(b);
           for (int i = 0; i < 2; ++ i) {
               int c;
               while ((c = obj1.read()) != -1) {
                 if (i == 0) {
                       System.out.print(Character.toUpperCase((char)c));  
                 }
               }
           }
        }
    }

  • abc
  • ABC
  • ab
  • AB
当 i =0 时, for 循环开始第一次循环。
    此时会进入 while 循环,由于 i = 0,所以随着 while 循环依次执行,会输出 ABC,while 循环结束时 c = -1。
当 while 循环结束,i =1, for 循环开始第二次循环。
    此时会进行 while 循环的判断逻辑,注意此时 c 是 -1 ,所以并不会进入 while 循环的循环体。
发表于 2022-01-15 17:16:40 回复(0)
通过对代码的调试,这里的obj1 字节数组输入流 是将b字节数组一次性传入的。在第一次循坏中在while循坏判断时会把obj1这个流 全部读出。此时i 始终等于0 ,即将字符全部大写。(个人分析,不知具体原理。)
发表于 2020-11-14 11:15:43 回复(1)