四、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学习笔记:流程控制之分支语句

Java学习笔记:流程控制之分支语句 流程控制        流程控制(flowof control)是程序执行动作的顺序。Java和其他大多数其他编程语言,都使用了两种语句来规范控制流程:分...

流程控制--分支结构

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

Power Shell 学习笔记(六)流程控制语句之分支语句

Power Shell 本身是一种系统脚本,那么当然常见的流程控制语句是有的。这次我们来看看分支语句。 PS目前支持分支语句有IF和Switch两种,相信学习过任意一门开发语言的人都不会感到陌生,甚至...

PHP学习笔记——流程控制概述, PHP分支结构;

流程控制概述 /* 程序的三种结构 * 1.顺序结构 * 2.分支结构 * / 3.循环结构 PHP分支结构...
  • iheyu
  • iheyu
  • 2017-03-22 19:11
  • 136

新手学PHP之-流程控制之分支结构

我的网站:兰州妈妈网 分支结构的写法 if......else......   switch......case......default......  try......catch...... ...

09 WebGL 着色器编程语言GLSL ES的程序流程控制(分支ifelse和循环for)

着色器中的分支与循环与JavaScript或C中的几乎无异。 if语句和if-else语句 可以使用if语句或if-else语句进行分支判断,以控制程序流程。下面是使用if-else语句的...

程序流程控制(一)— if判断、switch分支判断

1. if判断 语法: if( 条件判断表达式 ){        执行语句… }注意:if的判断的条件的结果一定是 bolean 类型。如果条件判断的表达式的返回值是 true,则可以执行...

流程控制:if分支结构

shell中if判断语法:if commands; then commands elif commands; then commands else commands fi与...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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