五 程序的流程控制
import java.io.IOException;
/**
* 程序的流程控制
*
* 1 顺序结构
* 2 选择结构
* 3 循环结构
*/
class IfandElse
{
/*选择结构if...else...*/
public void values(int x)
{
if(x>0)
System.out.println("x>0");
else
if(x == 0)
System.out.println("x == 0");
else
System.out.println("x<0");
}//尽量通过大括号来划分程序的层次
public void values2(int x)
{
if(x>0)
System.out.println("x>0");
else if(x <= 0)
if(x == 0)
System.out.println("x == 0");
else
System.out.println("x<0");
}//另外else和其最接近的if配对.
}
enum Course
{
ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN;
}
class SwitchCase
{
/*选择结构switch*/
public void schedule(int x)
{
if(x>0 && x<=10)
{
switch(x)
//switch中的参数只能是byte,short,int,long,char类型.不能是字符串和float,double类型
{
case 1: System.out.println("英语");break;
case 2: System.out.println("计算机");break;
case 3:
case 4: System.out.println("数学");break;
case 5: System.out.println("政治");break;
case 6: System.out.println("语文");break;
case 7:
case 8: System.out.println("大课间");break;
default: System.out.println("晚自习");
}
}
else
System.out.println("please input right data");
}
public void schedule2(Integer i)
{
if(i>0 && i<=10)
{
switch(i)
{
case 1: System.out.println("英语");break;
case 2: System.out.println("计算机");break;
case 3:
case 4: System.out.println("数学");break;
case 5: System.out.println("政治");break;
case 6: System.out.println("语文");break;
case 7:
case 8: System.out.println("大课间");break;
default: System.out.println("晚自习");
}
}
else
System.out.println("please input right data");
}
public void schedule3(Course c)
{
switch(c)
{
//jdk1.5以后可以接受一个枚举类型的字符串参数.
case ONE: System.out.println("英语");break;
case TWO: System.out.println("计算机");break;
case THREE:
case FOUR: System.out.println("数学");break;
case FIVE: System.out.println("政治");break;
case SIX: System.out.println("语文");break;
case SEVEN:
case EIGHT: System.out.println("大课间");break;
default: System.out.println("晚自习");
}
}
}
public class Procedural {
public static void main(String[] args) {
System.out.println("测试if...else");
IfandElse iae = new IfandElse();
iae.values(12);
iae.values(0);
iae.values(-4);
iae.values2(12);
iae.values2(0);
iae.values2(-4);
System.out.println("测试switch...case");
SwitchCase sc = new SwitchCase();
System.out.println("用for循环的排序");
for(int i=0;i<=10;i++)
{
sc.schedule(i);
}
System.out.println("用while循环排序");
int count = 0;
while(true)
{
if(count > 10)
break;
else
{
sc.schedule2(count);
}
count++;
}
System.out.println("用do...while循环排序");
count = 0;
do
{
sc.schedule2(count);
count++;
}
while(count <= 10);
System.out.println("测试枚举类型");
sc.schedule3(Course.ONE);
sc.schedule3(Course.TWO);
sc.schedule3(Course.THREE);
sc.schedule3(Course.FOUR);
sc.schedule3(Course.FIVE);
sc.schedule3(Course.SIX);
sc.schedule3(Course.SEVEN);
sc.schedule3(Course.EIGHT);
sc.schedule3(Course.NINE);
sc.schedule3(Course.TEN);
//综合练习:通过system.in.read()在键盘中读取一个字符,然后将此字符打印.
System.out.println("please input a charactor:");
int integers = 0;
//用while循环编写
while(true)
{
try
{
integers = System.in.read();
}
catch (IOException e)
{
e.printStackTrace();
}
if(integers == '/n')
{
System.out.println();
}
else if(integers == '/r')
{
System.out.print("");
}
else if(integers == 'q' || integers == 'Q')
break;
else
{
System.out.print((char)integers);
}
}
//用do...while编写
do
{
try {
integers = System.in.read();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
switch(integers)
{
case '/n':
{
System.out.print("");break;
}
case '/r':
{
System.out.print("");break;
}
default :
System.out.print((char)integers);
}
}while(integers != 'q' & integers != 'Q');
//用for循环编写
for(;true;)
{
try
{
integers = System.in.read();
}
catch (IOException e)
{
e.printStackTrace();
}
if(integers == '/n')
{
System.out.println();
}
else if(integers == '/r')
{
System.out.print("");
}
else if(integers == 'q' || integers == 'Q')
break;
else
{
System.out.print((char)integers);
}
}
}
}
/* output ~~~
测试if...else
x>0
x == 0
x<0
x>0
x == 0
x<0
测试switch...case
用for循环的排序
please input right data
英语
计算机
数学
数学
政治
语文
大课间
大课间
晚自习
晚自习
用while循环排序
please input right data
英语
计算机
数学
数学
政治
语文
大课间
大课间
晚自习
晚自习
用do...while循环排序
please input right data
英语
计算机
数学
数学
政治
语文
大课间
大课间
晚自习
晚自习
测试枚举类型
英语
计算机
数学
数学
政治
语文
大课间
大课间
晚自习
晚自习
please input a charactor:
*/