四、java流程控制(二)-分支控制

原创 2013年12月05日 23:00:17

4.2分支控制

让程序有选择的支行,分支控制有三种:

1、单分支 2、双分支 3、多分支

 

4.2.1 if语句

☆双分支

if语句:

if(条件表达式)

{

语句;

}else

{

语句;

}

☆多分支

if语句:

if(条件表达式)

{

语句;

}else if(条件表达式)

{

语句;

}else

{

语句;

}

 

思考题:

编写一个程序,可以输入人的年龄,如果该人的年龄大于等于18岁,则输出“你的年龄大于等于18,要为自己的行为负责!”

分析:

第一步:

在控制台输入字符

第二步:

判断控制台的输入字符,进行相应操作

可以从题目中看出,基本就是两个情况,如下:

1、年龄小于18岁,未成年人

2、年龄大于等于18岁,输出信息

代码如下:

/*

作者:李俊挥

日期:2013-12-2

功能:判断输入的年龄大小,进行分支控制输出

*/

 

import java.io.*;

 

public class Demo

{

public static void main(String []args)

{

//执行控制台输入,必须要抛出异常

try{

//定义控制台输入获取方法

InputStreamReader isr=new InputStreamReader(System.in);

BufferedReader br=new BufferedReader(isr);

//获取输入的字符

System.out.println("输入你的年龄");

String s=br.readLine();

//转换类型,String->int

int age;

age=Integer.parseInt(s);

//测试获取数据

//System.out.println("age="+age);

//分支判断

if(age<18){

System.out.println("你还未成年");

}else{

System.out.println("你已经是成年人,要为自己的行为负责!");

}

}catch(Exception e){

e.printStackTrace();

}

}

//end

 

 

思考题:

程序执行多分支的时候,是否只要满足其中一个分支的条件,就不再进行后面的分支?

注意:当然按照从上到下,从左到右的执行顺序

 

思路:

1、定义int a=100

2、编写if语句,使得a都满足多个分支的条件,看输出哪些语句

 

代码如下:

/*

作者:李俊

日期:2013-12-2

功能:输入的年龄大小,判断多分支控制的执行结果

*/

 

import java.io.*;

 

public class Demo

{

public static void main(String []args)

{

//执行控制台输入,必须要抛出异常

try

{

//定义控制台输入获取方法

InputStreamReader isr=new InputStreamReader(System.in);

BufferedReader br=new BufferedReader(isr);

//获取输入的字符

System.out.println("输入你的年龄");

String s=br.readLine();

//转换类型,String->int

int age;

age=Integer.parseInt(s);

//测试获取数据

//System.out.println("age="+age);

//分支判断

if(age>1)

{

System.out.println("age>1");

}else if(age>10)

{

System.out.println("a>10");

}else if(age>18)

{

System.out.println("a>18");

}

}catch(Exception e)

{

e.printStackTrace();

//try catch

 

}//main

 

}//Demo

//end

 

 

4.2.2 switch语句

switch语句:

switch(条件表达式)

{

case 常量1:

语句1;

break;

case 常量2:

语句2;

break;

……

case 常量n:

语句n;

break;

default:

语句;

break;

}//switch

//条件表达式数据类型,应该和case的常量类型一致

注意:

Switch中的可用数据类型主要是:

允许byteshortintcharenum

 

思考题:

编写一个程序,该程序可以接受一个字符,比如:a,b,c,d,e,f,g

A表示星期一,b表示星期二……

根据用户输入显示相依的信息

分析:

1、从控制台获取相依的字符

2、根据switch判断输入的字符

代码:

/*

 ***********************************************************************

作者:李俊挥

日期:2013-12-2

功能:输入的字符,根据switch根据输入字符a,b,c,d,e,f,g

    输入:a表示星期一,b表示星期二……

 ***********************************************************************

*/

 

import java.io.*;

 

public class Demo

{

public static void main(String []args)

{

//执行控制台输入,必须要抛出异常

try{

//定义控制台输入获取方法

InputStreamReader isr=new InputStreamReader(System.in);

BufferedReader br=new BufferedReader(isr);

//获取输入的字符

System.out.println("输入abcdefg,其中一个字符,按回车结束:");

String s=br.readLine();

//转换类型,String->char

char[] strChar;

//一定要定义数据的下标,不然只输入一个字符的话就会报错

strChar = new char[1];

strChar = s.toCharArray();

char flag;

flag = strChar[0];

//测试获取数据

//System.out.println("s="+s);

//System.out.println("strChar[0]="+strChar[0]);

//System.out.println("flag="+flag);

//分支判断

//注意case必须是常量,所以字符必须加单引号'',才不会报错

switch(flag)

{

case 'a':

System.out.println("星期一");

break;

case 'b':

System.out.println("星期二");

break;

case 'c':

System.out.println("星期三");

break;

case 'd':

System.out.println("星期四");

break;

case 'e':

System.out.println("星期五");

break;

case 'f':

System.out.println("星期六");

break;

case 'g':

System.out.println("星期日");

break;

default:

System.out.println("未定义字符");

break;

}

}catch(Exception e){

e.printStackTrace();

//try catch

}//main

 

}//Demo

 

 

 

 

思考题:

如果在switch语句中不写break,会不会像if语句只执行一个分支呢?

分析:

刚上面的代码去除break,运行一遍。

代码:

/*

 ***********************************************************************

作者:李俊挥

日期:2013-12-2

功能:注释去掉switch语句中的break,验证是否只执行一个分支

 ***********************************************************************

*/

 

import java.io.*;

 

public class Demo

{

public static void main(String []args)

{

//执行控制台输入,必须要抛出异常

try{

//定义控制台输入获取方法

InputStreamReader isr=new InputStreamReader(System.in);

BufferedReader br=new BufferedReader(isr);

//获取输入的字符

System.out.println("输入abcdefg,其中一个字符,按回车结束:");

String s=br.readLine();

//转换类型,String->char

char[] strChar;

//一定要定义数据的下标,不然只输入一个字符的话就会报错

strChar = new char[1];

strChar = s.toCharArray();

char flag;

flag = strChar[0];

//测试获取数据

//System.out.println("s="+s);

//System.out.println("strChar[0]="+strChar[0]);

//System.out.println("flag="+flag);

//分支判断

//注意case必须是常量,所以字符必须加单引号'',才不会报错

switch(flag)

{

case 'a':

System.out.println("星期一");

//break;

case 'b':

System.out.println("星期二");

//break;

case 'c':

System.out.println("星期三");

//break;

case 'd':

System.out.println("星期四");

//break;

case 'e':

System.out.println("星期五");

//break;

case 'f':

System.out.println("星期六");

//break;

case 'g':

System.out.println("星期日");

//break;

default:

System.out.println("未定义字符");

//break;

}

}catch(Exception e){

e.printStackTrace();

}

}

 

可以从结果中看出,如果去掉breakswitch语句就会执行所有分支。

 

可以看出,分支语句只要按照执行顺序满足了前面的其中一个条件,后面的语句就不会再执行。

流程控制--分支结构

Java提供了两种常见的分支控制结构,if语句和switch语句。 其中if语句使用boolean表达式或boolean值作为分支条件来进行分支控制, 而switch语句则用于对多个整形值进行匹配...
  • u011794238
  • u011794238
  • 2016年05月10日 16:49
  • 778

JAVA 控制流程之分支语句 (switch)

switch 和 if 都是分支语句,if 一般用于简单的分支判断,而 switch 常用于多分支判断。我们就来说一下 switch 分支语句。 switch 语句由一个控制表达式和多个case...
  • YS0813
  • YS0813
  • 2017年02月26日 15:16
  • 447

JAVA 控制流程之分支语句 (if -else)

JAVA 的分支语句 if-else 和 switch 。分支语句的作用是可以让程序根据不同的情况、不同条件进行不同操作,从而让程序更灵活。下面来了解一下流程图: if - else 语句的基本格式...
  • YS0813
  • YS0813
  • 2017年02月26日 13:45
  • 770

6/22作业:Java中的流程(顺序流程,分支流程,循环流程)

Java中的流程(顺序流程,分支流程,循环流程) 分支语句if/else 条件语句 — if 条件语句 — if…else… 条件语句 — if…else if…   条件语句 — if ...
  • yangbin18734577509
  • yangbin18734577509
  • 2017年07月11日 19:38
  • 163

流程控制(面向对象篇)

流程控制语句主要包括顺序语句,选择语句,循环语句以及跳转语句。 顺序结构:顺序结构是程序中最常见的流程结构,语句按照出现的先后顺序自上而下依次执行。顺序语句执行的过程中没有跳转和选择,直到程序结束为...
  • zyf__java
  • zyf__java
  • 2016年04月23日 13:30
  • 737

SpringMVC(二)——流程控制

SpringMVC主要就是用来做流程控制的,这篇博客总结一下如何在流程控制添加Interceptor(拦截器),如何将进行流程Mapping映射解析,如何编写Controller(控制器)。   ...
  • liujiahan629629
  • liujiahan629629
  • 2014年03月20日 23:30
  • 9561

SQL之流程控制

分为变量声明、流程控制、数据操纵、数据控制、内嵌函数和自定义函数 1:局部变量的声明和赋值      Declare @变量名 变量类型     可以声明一个或者多个变量...
  • woshisap
  • woshisap
  • 2012年03月14日 14:05
  • 1908

MySQL流程控制的使用

流程控制语句,用于将多个SQL语句,划分或组成成符合业务逻辑的代码块MySQL中流程控制语句包括,IF语句、CASE语句、LOOP语句、WHILE语句、LEAVE语句、ITERATE语句、REPEAT...
  • nangeali
  • nangeali
  • 2017年07月28日 23:18
  • 565

js三大流程控制

1.顺序控制 2.分支控制 分支控制  if  else var sex=window.prompt("请输入性别");   if(sex=="男"){       ...
  • lf1218
  • lf1218
  • 2016年04月20日 11:10
  • 4121

JSP标签JSTL(2)--流程控制

对于流程控制,单纯的用jsp脚本,显得很是繁琐,尤其是遇到if判断的时候,写代码的时候就需要特别的小心,因为极有可能会出现符号不匹配的状况。但是利用标签语言就会大大的改善这一状况。流程控制 if标签 ...
  • Marksinoberg
  • Marksinoberg
  • 2016年01月08日 10:06
  • 7048
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:四、java流程控制(二)-分支控制
举报原因:
原因补充:

(最多只允许输入30个字)