Java流程控制语句

Java流程控制语句(条件语句)

一 、复合语句

Java语言的复合语句是以整个区块为单位的语句,所以又称块语句。复合语句由开括号“{”开始,闭括号“}”结束。例如类体和方法体都是以“{”与“}”作为开始和结束的标记。复合语句中每条语句都是从上到下被执行。复合语句以块为单位,一对{}里的内容为一个块。块可以使用在任何一个单独语句可以使用的地方,并且复合语句中还可以嵌套使用复合语句。

例如下面的代码:

public class Demo01{
	public static void main(String[] args){
		int x = 0;
      //从第五行开括号{到第十五行与之对应的闭括号}结束为一个复合语句
		{                        
			int y = 1;
			System.out.println(y);
			int z = 245;
			boolean b ;
          //从第十一行开括号{到第十四行与之对应的闭括号}结束为一个复合语句
			{                       
				b = y > z;
				System.out.println(b);
			}
        }
		String str = "Hello Java!";
		System.out.println(str);
	}
}

注意:在使用复合语句时,一定要注意每个代码块中局部变量的作用域。例如上述代码如果在复合语句外使用y,z,b就会出现错误。

二 、if语句

  1. if条件语句

if条件语句是一个很重要的编程语句,用于判断某个条件成立时执行哪些语句,不成立时执行哪些语句。

if语句可划分为简单if语句、if…else语句和if…else if多分支语句。

简单if语句语法如下:

if(布尔表达式)
{
​	语句序列;
}
  • 布尔表达式: 必要参数,表示最后返回的结果必须是一个布尔值,可以使一个布尔常量,也可以是一个布尔运算符的表达式。
  • 语句序列: 可选参数,可以是一条或多条语句,当表达式的值为true时执行这些语句,如果语句序列中只有一条语句,可以省略条件语句中的“{}”。(不过强烈建议即使只有一条语句也把{}带上)

if条件语句示例:打电话

public class TalkPhone{
	public static void main(String[] args){
		String num = 15212341234;    //创建String类型变量,保存电话号码
		if(num != "12345678910")	  //如果电话号码不是12345678910
		{
			System.out.println("您拨打的电话是空号!");   //提示您拨打的电话是空号
		}
	}
}

运行结果如下:

您所拨打的电话是空号!
  1. if…else语句

if…else语句是条件语句中最常用的一种形式,他会针对某种条件做出相应的处理。通常表现为“如果满足某种条件,就进行某种处理,否则进行另一种处理”,语法如下:

if(条件表达式)
{
	语句序列1;
}
else
{
	语句序列2;
}

这里的条件表达式的返回值是true则执行if后紧跟的的复合语句,如果返回值是false则执行else后紧跟的复合语句。

if…else语句示例:比较两个数的大小

public class Than{
	public static void main(String[] args){
		int a = 10;
		int b = 20;
		int max = 0;
		if(a > b)
		{
			max = a;
		}
		else
		{
			max = b;
		}
		System.out.println("最大值为" + max);
	}
}

运行结果如下:

最大值为20
  1. if…else if语句

if…else if多分支语句适用于针对某一件事的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件,就进行另一种处理”具体语法如下:

if(条件表达式1)
{
	语句序列1;
}
else if(条件表达式2)
{
	语句序列2;
}
...
else if(条件表达式n)
{
	语句序列n;
}
  • 条件表达式1~条件表达式n: 必要参数。可以由多个表达式组成,但最后返回的结果一定要为boolean类型。
  • 语句序列: 可以是一条或多条语句,当条件表达式1的值为true时,执行语句序列1,当条件表达式2的值为true时,执行语句序列2…

if…else if语句示例:区分春夏秋冬四季

public class Year{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
      System.out.println("请输入月份:");
		int month = sc.nextInt();
		if(month == 1|| month == 2|| month ==3) //判断输入的月份是不是1月或者2或者3月
        {
            System.out.println(month + "月是春季");
        }
        else if(month == 4|| month == 5|| month == 6)
        {
            System.out.println(month + "月是夏季");
        }
        else if(month == 7|| month == 8|| month == 9)
        {
            System.out.println(month + "月是秋季");
        }
      	 else if(month == 10|| month == 11|| month == 12)
        {
            System.out.println(month + "月是冬季");
        }
	}
}

运行结果如下:

请输入月份:3
3月是春季

三 、switch多分支语句

在编程时,检测一个变量是否符合某个条件,如果不符合,再用另一个值来检测。这种问题也可以使用if语句来完成。例如上述例子区分春夏秋冬,需要判断月份满足那个条件,这种多分支判断语句用if语句写比较笨重,可以用switch语句来实现。

switch基本语法如下:

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

switch语句中表达式的值必须是整形、字符型、字符串类型或者枚举类型,常量值1~n的数据类型必须和表达式的值的类型相同。

switch语句首先计算表达式的值,如果表达式的计算结果和某个case后面的常量值相同,则执行该case后面所对应的若干条语句,直到遇到break为止,如果该case语句中没有break语句,将继续执行后面case中的若干个语句,直到遇到break语句为止。如果没有一个常量值与表达式中的值对应,则执行default后面的语句。switch语句中可以没有default语句,如果没有default语句,且表达式中的值不与任何一个case所对应,那么这个switch语句不作处理。

注意

  • 同一个switch语句,case常量值必须互不相同。
  • case语句后常量表达式的值可以使整数,但不可以为非整数的实数。如case 1.1就是错误的形式。

switch多分支语句应用举例:实现一年十二个月的四季划分:

public class Year{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入月份:");
		int month = sc.nextInt();
		switch(month)
		{
			case 1:
			case 2:
			case 3:
			System.out.println(month+"月是春季");
			break;
			case 4:
			case 5:
			case 6:
			System.out.println(month+"月是夏季");
			break;
			case 7:
			case 8:
			case 9:
			System.out.println(month+"月是秋季");
			break;
			case 10:
			case 11:
			case 12:
			System.out.println(month+"月是冬季");
			break;
		}
	}
}

运行结果如下:

请输入月份:5
5月是夏季
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值