Java语言学习(三):流程控制

    在了解开发工具后,咱们来熟悉一下Java语言的流程控制模块知识,下面经过一些案例来学习一下。java

    首先,来熟悉一下流程控制语句if...else的使用:编程

    (1)任务:判断某一年是否为闰年数组

    (2)准备工做:符合闰年的条件是能被4整除但不能被100整除或者能被400整除工具

    (3)编程:经过控制台输入年份的方式,代码以下学习

import java.util.Scanner;

public class RunYear{
   public static void main(String[] args){
      Scanner scan =new Scanner(System.in);
      System.out.println("请输入一个年份:");
      long year;
      try{
          year = scan.nextLong();
          if((year%4 == 0 && year%100 !=0) || year%400 == 0)
              System.out.println(year+"是闰年!");
          else
              System.out.println(year+"不是闰年!");
      }catch(Exception e){
          System.out.println("输入的不是有效的年份!");
      }
   }
}

    (4)运行:输入年份可输出相应信息开发工具

    其中,Scanner类是一个用于扫描输入文本的简单文本扫描器,能够用这个类从控制台写入数据,类的nextLong()方法能够将输入信息转为一个long型的数据。上面运用了if...else的简单流程语句,也能够按三元运算符(?:)的形式编写,让代码看起来更加简洁。ui

    注意:若是if表达式判断两字符串是否相同,则不能使用 “==”,由于字符串属于对象而非基本数据类型,使用“==”判断的将是两个字符串对象的内存地址,而非字符串内容,因此须要经过equals()方法来判断是否相同。spa

    接下来,来熟悉一下流程控制语句switch的使用:code

    (1)任务:根据成绩分出等级对象

    (2)准备工做:switch语句的基本语法格式

switch(表达式){
   case 常量表达式1:语句1
      break;
   case 常量表达式2:语句2
      break;
   ...
   case 常量表达式n:语句n
      break;
   default:语句n+1
      break;
}

    参数说明:  

参数名称 参数描述
表达式 必要参数,能够是任何byte、short、int和char类型的变量
常量表达式1 若case存在,则为必要参数,该常量表达式的值必须是一个与表达式数据类型相兼容的值
语句1 可选参数,一条或多条语句,当表达式的值与常量表达式1的值匹配时执行
常量表达式n 若case存在,则为必要参数,该常量表达式的值必须是一个与表达式数据类型相兼容的值
语句n 可选参数,一条或多条语句,当表达式的值与常量表达式n的值匹配时执行
break 可选参数,用于跳出switch语句
default 可选参数,当全部case中的常量表达式匹配不成功时执行
语句n+1 可选参数,若没有与表达式的值相匹配的case常量时执行

 

    (3)编程:按照百分制经过控制台输入成绩的方式,代码以下

import java.util.Scanner;

public class ScoreLevel{
   public static void main(String[] args){
      Scanner scan =new Scanner(System.in);
      System.out.println("请输入成绩:");
      try{
         int score = scan.nextInt();
         score = score/10;
         switch(score){
            case 10:
            case 9:
               System.out.println("成绩等级为A!");
               break;
            case 8:
               System.out.println("成绩等级为B!");
               break;
            case 7:
               System.out.println("成绩等级为C!");
               break;
            case 6:
               System.out.println("成绩等级为D!");
               break;
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
            case 0:
               System.out.println("成绩等级为E!");
               break;
        }
      catch(Exception e){
         System.out.println("输入无效!");
      }
   }
}

    (4)运行:输入成绩可输出相应信息

    注意:对于多个条件采起相同处理的状况,能够把多个case分支关联在一块儿,减小重复代码,default属于可选参数,可不采用,如上所示。break语句和continue语句都是对循环体的控制语句,前者表示跳出多层循环,结束循环,后者表示跳过其后面的语句,进入下一次循环,循环继续。

    紧接着,来熟悉一下流程控制语句while的使用:

    (1)任务:自增运算符结合while循环实现数组的遍历

    (2)准备工做:while循环语句基本语法格式

while(条件表达式){
   循环体;
}

    参数说明:条件表达式决定是否进行循环,其结果为boolean类型,即为true或false;循环体是条件表达式结果为true时执行的语句。

    (3)编程:

public class ColorWhile{
   public static void main(String[] args){
       String[] colorArray = {"BLUE","WHITE","YELLOW","BLACK","GREEN"};
       int index = 0;
       while(index < colorArray.length){
          System.out.println("颜色:为"+colorArray[index++]);
       }
   }
}

    (4)运行可在控制台看到依次输出数组中的值

    注意:数组下标从0开始;自增和自减运算符都分前置和后置两种,如上,“index++“会先使用变量的值,再进行递增运算,“++index”则会先进行递增运算,再使用变量的值,你们能够修改上面的代码进行验证,看看二者之间的区别和原理,会出现数组越界的状况。

    最后,来熟悉一下流程控制语句for的使用:

    (1)任务:输出杨辉三角

    (2)准备工做:杨辉三角的原理(两侧数值均为1,其余位置的数值是其正上方的数值与左上角数值之和);for循环语句基本语法格式

for(表达式1;表达式2;表达式3){
   循环体
}

    参数说明:3个表达式均为可选,即for循环能够无表达式,则为无限循环;执行顺序为:表达式1->表达式2->循环体->表达式3。

    (3)编程:经过控制台输入显示的行数

import java.util.Scanner;

public class YanghuiTriangle {
   public static void main(String[] args) {
      Scanner scan =new Scanner(System.in);
      System.out.println("请输入要输出的行数:");
      try{
         int row = scan.nextInt();
         //建立二维数组
         int triangle[][] = new int[row][];
         for(int i=0;i<triangle.length;i++){
             //初始化第二层数组的大小
             triangle[i] = new int[i+1];
             //遍历数组
             for(int j=0;j<=i;j++){
                 //两侧数组元素均为1
                 if(i==0 || j==0 || i==j)
                    triangle[i][j] = 1;
                 //其余数组元素值=正上方值+正上方左值
                 else
                    triangle[i][j] = triangle[i-1][j]+triangle[i-1][j-1];
                 //输出数组元素
                 System.out.print(triangle[i][j]+"\t");
             }
             System.out.println();
          }
       }catch(Exception e){
           System.out.println("输入不合规范!");
       }
   }
}

    (4)运行输入显示行数可输出对应的杨辉三角

    注意:在二维数组中,第一个下标值表示行数,第二个下标值表示列数,上面建立二维数组时第二维的长度未肯定,表示第二维的长度任意、不肯定。

    以上是对流程控制中几种经常使用的语句进行一些讲解和运用,还有相对复杂的,好比嵌套循环(九九乘法表案例)等,这里不作介绍了,你们自行学习巩固。

相关文章
相关标签/搜索