java学习笔记(六)-控制流语句-条件判断

java学习笔记(六)-控制流语句-条件判断

控制语句的作用

源文件中的语句通常按显示顺序从上到下执行。

控制流语句通过采用决策,循环和分支来分散执行流,使您的程序可以有条件地执行特定的代码块。

if…和if…else语句

语法规则

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

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

Example
public class Test {
 
   public static void main(String args[]){
      int x = 10;
 
      if( x < 20 ){
         System.out.print("这是 if 语句");
      }
   }
}
if…else语句
语句的语法如下

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

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}
Example
public class Test {
 
   public static void main(String args[]){
      int x = 30;
 
      if( x < 20 ){
         System.out.print("这是 if 语句");
      }else{
         System.out.print("这是 else 语句");
      }
   }
}

switch(参数)…case…

if-thenif-then-else语句不同,该switch语句可以具有许多可能的执行路径。一个switch工作原理与byteshortchar,和int原始数据类型。它还可以与枚举类型(讨论 枚举类型)的 String类,以及一些特殊的类,包装某些基本类型: CharacterByteShort,和 Integer(在讨论 数字和字符串)。

public class SwitchDemo {
    public static void main(String[] args) {

        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        System.out.println(monthString);
    }
}

switch语句的主体称为switch块switch块中的语句可以用一个或多个casedefault标签来标记。该switch语句计算其表达式,然后执行匹配case标签后的所有语句。

根据可读性和该语句正在测试的表达式来决定是使用if-then-else语句还是使用语句switch。一条if-then-else语句可以基于值或条件的范围来测试表达式,而一条switch语句只能基于单个整数,枚举值或String对象来测试表达式。

另一个兴趣点是break声明。每个break语句都终止该封闭的switch语句。控制流继续执行该switch块之后的第一条语句。该break语句是必需的,因为没有它们,switch块中的语句会陷入:匹配case标签之后的所有语句将按顺序执行,而不管后续case标签的表达如何,直到break遇到一条语句为止。

在switch语句中使用字符串

可以Stringswitch语句的表达式中使用对象。

public class StringSwitchDemo {

    public static int getMonthNumber(String month) {

        int monthNumber = 0;

        if (month == null) {
            return monthNumber;
        }

        switch (month.toLowerCase()) {
            case "january":
                monthNumber = 1;
                break;
            case "february":
                monthNumber = 2;
                break;
            case "march":
                monthNumber = 3;
                break;
            case "april":
                monthNumber = 4;
                break;
            case "may":
                monthNumber = 5;
                break;
            case "june":
                monthNumber = 6;
                break;
            case "july":
                monthNumber = 7;
                break;
            case "august":
                monthNumber = 8;
                break;
            case "september":
                monthNumber = 9;
                break;
            case "october":
                monthNumber = 10;
                break;
            case "november":
                monthNumber = 11;
                break;
            case "december":
                monthNumber = 12;
                break;
            default: 
                monthNumber = 0;
                break;
        }

        return monthNumber;
    }

    public static void main(String[] args) {

        String month = "August";

        int returnedMonthNumber =
            StringSwitchDemo.getMonthNumber(month);

        if (returnedMonthNumber == 0) {
            System.out.println("Invalid month");
        } else {
            System.out.println(returnedMonthNumber);
        }
    }
}

注意:此示例检查switch语句中的表达式是否为null。确保任何switch语句中的表达式都不为空,以防止NullPointerException引发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值