输入输出

格式化输出


1. 使用 System.out.print(x) 将内容x输出到控制台。如果需要输出后换行,应使用 System.out.println(x),其中x可以是已知数据类型或者是字符串String类型。


2. 可以使用字符串连接符“+”将不同的内容连接起来,当“+”一端不是字符串时,将强制类型转换为字符串,并将字符串连接,且两端必须有一端为字符串。


3. 使用 System.out.printf() 方法进行格式化输出,该方法沿用了C语言中的格式化方案。


例如:


System.out.printf("%8.2f", x)


用8个字符宽度以及小数点后两个字符精度显示x的值,如果 x = 1234.56789 ,那么将打印一个空格和7个字符: 1234.56 。



读取输入


1. 使用 Scanner 对象,并将 System.in 的标准输入流作为参数传入绑定,然后使用 Scanner 对象进行输入。



示例

import java.util.*;
   
    
   
   /**
   
    * 输入输出演示
   
    * 
   
    * @author Jacob Yin
   
    */
   
   class Demo {
   
     public static void main(String[] args) {
   
       Scanner in = new Scanner(System.in);
   
    
   
       System.out.println("name?");
   
       String name = in.nextLine();
   
    
   
       System.out.println("age?");
   
       int age = in.nextInt();
   
    
   
       System.out.println("Hello " + name + "!, Next year u'll be " + (age + 1));
   
     }
   
   }


2. 如果需要输入密码,那么应该使用 Console 类。



流程控制

块作用域


由一对大括号括起来的若干条简单的Java语句。



条件

if (condition1) {
    
      statement1;
    
    } else if (condition2) {
    
      statement2;
    
    } else {
    
      statement3;
    
    }

其中,else if 和 else 不是必须的。



循环


方式一:


while (condition) { 

 

    statement; 

 

  }


方式二:


do { 

 

    statement; 

 

  } while (condition);


方式三:


for (初始化表达式; 循环条件表达式; 循环后操作表达式) {


statement; 

 

  }



1. while 循环是先判断,后执行;do-while 循环是先执行后判断。


2. for 循环先执行初始化表达式,然后判断循环条件表达式,如果满足则执行循环体,接着执行循环后操作表达式,然后循环判断循环条件表达式,直到不满足为止。也就是说初始化表达式只在一开始执行一次,接下来就是条件表达式->循环体->操作表达式的循环执行。



多重选择


switch (choice) {
   
     case 1:
   
       statement1;
   
       break;
   
     case 2:
   
       statement2;
   
       break;
   
     default:
   
       // bad input
   
       statement3;
   
       break;
   
   }

1. case 标签可以是 char; byte; short 或 int (或其包装类),枚举常量(Java 5),字符串字面量(Java 7支持)。


2. switch 语句从与选项值(choice)相匹配的 case 标签处开始执行,直到遇到 break 语句,或者执行到 switch 语句的结束为止。如果没有相匹配的 case 标签,而有 default 子句,就执行这个子句。



中断流程控制


break/continue


1. break 中断并跳出循环语句块。 continue 中断并将控制转移到该层循环的首部。


2. break 可以使用标签,以便中断并跳出多重循环体。


3. break 标签必须放在希望跳出的最外层循环之前。



示例


/**
    
     * 打印*号三角形,要求打印*的数量达到30个就停止。
    
     * 
    
     * @author Jacob Yin
    
     */
    
    class Demo {
    
      public static void main(String[] args) {
    
        int count = 0;
    
        int i = 1;
    
        countStop: while (true) {
    
          // 打印第i行的*
    
          for (int j = 0; j < i; j++) {
    
            System.out.print("*");
    
            count++;
    
            // 判断如果输出的*达到30个,就跳出最外层循环
    
            if (count == 30) {
    
              break countStop;
    
            }
    
          }
    
          // 换行,并且下一行比这一行多一个*
    
          System.out.println();
    
          i++;
    
        }
    
      }
    
    }