java流程控制01

Scanner对象

java.util.Scanner是Java5的新特征,可以通过 Scanner 类来获取用户的输入。

 // 创建Scanner对象的基础语法
 Scanner scanner = new Scanner(System.in);
 System.out.println("使用next方式输入:");
 // 使用next方式接收
 String str = scanner.next();
 // 输入:Hello World
 System.out.println("输入的内内容是:"+str); // 返回:Hello
 // 使用nextLine方式接收
 System.out.println("请输入:"+scanner.nextLine()); // 返回:Hello World
 // 凡是属于IO流的类如果不关闭会一直占用资源,养成良好的习惯
 scanner.close();

注:

next():

  • 一定要读到有效字符后才能结束输入。

  • 输入有效字符串后会将前后空格内容视作分隔符或者结束符不输出。

  • next() 不能得到待有空格的字符串。

nextLine():

  • 以回车为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。

  • 可以获得空白

         Scanner a = new Scanner(System.in);
  System.out.println("请输入整数:");
  // 判断输入的是否是整数
  if(a.hasNextInt()){
  int i = a.nextInt();
  System.out.println("我输入的整数是:"+i);
  }else{
  System.out.println("你输的很明显不是整数。");
  }

顺序结构

  • Java的基本结构就是顺序结构,除非特别指明,否则就按顺序一句一句执行。

  • 顺序结构是最简单的算法结构。

 

 

  • 语句和语句之间,框与框之间是按从上到下的顺序进行的,它是若干个一次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。

条件语句

- if 语句

  if(布尔表达式)
  {
  //如果布尔表达式为true将执行的语句
  }

 

 

如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。

- if…else 语句

  if(布尔表达式){
  //如果布尔表达式的值为true
  }else{
  //如果布尔表达式的值为false
  }

 

 

if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块才会被执行。

- if…else if…else 语句

    if(布尔表达式 1){
  //如果布尔表达式 1的值为true执行代码
  }else if(布尔表达式 2){
  //如果布尔表达式 2的值为true执行代码
  }else if(布尔表达式 3){
  //如果布尔表达式 3的值为true执行代码
  }else {
  //如果以上布尔表达式都不为true执行代码
  }

 

 

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。 使用 if,else if,else 语句的时候,需要注意下面几点:

 - `if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。`
 - `if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。`
 - `一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行.`

- 嵌套的 if…else 语句

   if(布尔表达式 1){
  ////如果布尔表达式 1的值为true执行代码
  if(布尔表达式 2){
  ////如果布尔表达式 2的值为true执行代码
  }
  }

- switch 多分支语句

 switch(表达式){
  case 常量值1 :
  //语句1
  break; //可选
  case 常量值2 :
  //语句
  break; //可选
  //你可以有任意数量的case语句
  default : //可选
  //语句
 }

 

 

switch 语句中表达式的值必须是整形、字符型或字符串类型。JDK7 后的新特性 switch 语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相等,则执行该case语句后的若干个语句直到遇到break语句为止。switch后面的表达式是常量,case后面的表达式赋给常量的变量值 case后面的表达式可以是整数,但不能是实数。

循环语句

- while 循环

 while( 布尔表达式 ) {
  //循环内容
 }

 

 

只要布尔表达式为 true,循环就会一直执行下去。

- do…while 循环

 do {
  //代码语句
 }while(布尔表达式);

 

 

do…while和while之间的区别是 while 语句为先判断条件是否成立在执行循环体,而 do…while 循环语句则先执行一次循环后,在判断条件是否成立。

- for 循环

 for(表达式1; 表达式2; 表达式3)
 {
  //代码句子
 }
 // 表达式1:初始表达式,负责完成变量的初始化。
 // 表达式2:循环条件表达式,值为boolean行的表达式,指定循环条件。
 // 表达式3:循环后操作表达式,负责修整变量,改变循环条件。

 

 

在执行for循环时,首先执行表达式1,完成某一变量的初始化工作;下一步判断表达式2的值,若表达式2的值为true,则进入循环体;在执行完循环体后紧接着计算表达式3,这部分通常是增加或减少循环控制变量的一个表达式。

- foreach 语句

 for(声明语句 : 表达式)
 {
  //代码句子
 }

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

foreach 是Java5引入的一种主要用于数组的增强型 for 循环。

循环控制

循环控制包含包含两方面的内容,一方面是控制循环变量的变化方式,另一方面是循环的跳转。 break是中断循环,continue是执行下一次循环。

#### - break 语句

在默认情况下:break语句终止的是离它最近的一层循环语句。

标签控制循环: 跳出指定循环(内外层都可以)

 标签名 : 循环体{
  break 标签名;
 }

- continue 语句

continue 语句是针对 break 语句的补充。continue 不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。

 for (int i=1; i<20; i++){
  if(i%2==0){ // 如果 i 是偶数
  continue; // 跳到下一个循环
  }
 }

continue 也支持标签语句。

 

posted @ 2021-04-14 18:54  C_Long  阅读(41)  评论(0)    收藏  举报