通常来说,对于一个java程序,如果没有一些控制语句,程序就是从上往下直接执行完毕。
//没有控制语句,直接从上往下执行
public class Control01 //类名
{ //java application程序主入口函数,带命令行参数
public static void main(String[] args) {
int a = 20;//定义变量a的值为20
int b = 15;//定义变量b的值为15
int c = a + b;//定义变量c,将a+b的值赋给c
int d = a-b;//定义变量d,将a-b的值赋给d
System.out.println(c);//输出c的值 --->35
System.out.println(d);//输出d的值 --->5
}
}
if语句
if语句的格式是:
/*
if(关系表达式){
语句体;
}
*/
如果关系表达式结果为true,则执行语句体,如果为false,就不执行语句体,直接执行后面的语句内容。
如下所示就是一个使用了if语句的java程序,用于获得a和b中的较大值。
//使用if语句进行选择a和b中的较大值
public class ifDemo //类名
{ //java application程序主入口函数,带命令行参数
public static void main(String[] args) {
int a = 10;//定义变量a,将10赋值给a
int b = 5;//定义变量b,将5赋值给b
int max = 0;//定义变量max,用来存放a与b之中的较大值
if (a > b)//if语句的判断条件
{
max = a;//将a的值赋给max
}
System.out.println(max);//输出max
}
}
不过很明显该程序不完整,如果b比a大,就不会得到b的值,所以就要使用if….else语句。
if…..else
if…else的格式是
/*
if(关系表达式){
语句体1;
}else{
语句体2;
}
*/
当关系表达式的结果为true时执行语句体1,为false时执行语句体2。
如下所示,还是获得a和b中较大值的程序,不过这里使用if…..else语句当b比a大的时候也能够顺利的获取b的值。
//使用if...else语句进行选择a和b中的较大值
public class ifDemo //类名
{ //java application程序主入口函数,带命令行参数
public static void main(String[] args) {
int a = 10;//定义变量a,将10赋值给a
int b = 15;//定义变量b,将5赋值给b
int max = 0;//定义变量max,用来存放a与b之中的较大值
if (a > b)//if语句的判断条件
{
max = a;//将a的值赋给max
}else{
max = b;//将b的值赋给max
}
System.out.println(max);//输出max
}
}
if…else if…else
if…else if…else的结构是
/*
if(关系表达式1){
语句1;
}else if(关系表达式2){
语句2;
}
…
else{
语句n+1;
}
*/
如果表达式1为true则执行语句1,表达式2为true则执行语句2,以此类推,如果所有表达式都为false都为false执行else后的语句n+1。
如下所示的java程序使用if…else if…else实现了判断a是大于100,小于100还是等于100的功能.
//判断a是大于100,等于100,还是小于100
public class ifDemo2 //类名
{ //java application程序主入口函数,带命令行参数
public static void main(String[] args) {
int a = 98;//定义变量a
if (a > 100) //表达式1
{
System.out.println("a的值大于100");//如果表达式1为true,则执行输出
} else if (a < 100)//表达式2
{
System.out.println("a的值小于100");//如果比较表达式2为true,则执行输出
} else {
System.out.println("a的值等于100");//如果比较表达式1和2都为false,则执行输出
}
}
}
swithch语句
switch语句的结构是:
/*
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
………
case 值n:
语句体n;
break;
default:
语句体n+1;
}
*/
执行到switch语句时,首先会执行表达式,根据表达式的值比较case后面的值,如果相匹配就执行对应case中的语句,执行完毕通过break跳出switch语句。如果case后的值都没有匹配成功,就会执行default中的语句。
如下所示的java程序是通过switch来表示今天是星期几。
//使用switch判断今天是星期几
public class SwitchDemo //类名
{ //java application程序主入口函数,带命令行参数
public static void main(String[] args) {
int a = 6;//定义变量a,用来表示输入的星期几
switch (a)//判断a的值
{
case 1://a的值如果为2,则输出下面的语句
System.out.println("今天是星期一");
break;//跳出swithch语句
case 2://a的值如果为2,则输出下面的语句
System.out.println("今天是星期二");
break;
case 3://a的值如果为2,则输出下面的语句
System.out.println("今天是星期三");
break;
case 4://a的值如果为2,则输出下面的语句
System.out.println("今天是星期四");
break;
case 5://a的值如果为2,则输出下面的语句
System.out.println("今天是星期五");
break;
case 6://a的值如果为2,则输出下面的语句
System.out.println("今天是星期六");
break;
case 7://a的值如果为2,则输出下面的语句
System.out.println("今天是星期日");
break;
default://如果前面case后的值都与a不匹配,则执行下面的语句
System.out.println("输入错误");
}
}
}
for循环
for循环语句的一般结构是:
/*
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
*/
执行到for循环语句时,首先会得到循环变量的值,然后执行条件判断语句是否为true,如果为false就不执行循环,如果为true则会进入到循环体去执行语句,接着再执行条件控制语句,这样一次循环就结束了。接着又会重复上面的步骤直到循环条件为false。
如下所示,该java程序是利用for循环得到7的阶层。
//使用for循环得到从7的阶乘
public class ForDemo //类名
{ //java application程序主入口函数,带命令行参数
public static void main(String[] args) {
int x=1;//定义x用来存放阶乘的结果
for(int a = 7;a>0;a--)
{
x=x*a;//每次循环进行相乘
}
System.out.println(x);//输出阶乘的结果 ---->5040
}
}
while循环
while循环语句的一般结构是:
/*
while(条件判断语句){
循环体语句;
条件控制语句;
}
*/
当执行到while循环语句时,首先判断循环条件,如果循环条件结果为true,则执行循环体语句,如果为false则不执行。
如下所示,该java程序是使用while循环得到1到10的累加和。
//使用while语句得到1到10的累加
public class WhileDemo//类名
{ //java application程序主入口函数,带命令行参数
public static void main(String[] args) {
int i = 10;//定义变量i
int sum = 0;//定义变量sum用于存放累加和
while(i>0)//循环的判断条件
{
sum = sum + i;//每次循环进行的累加
i--;//每次循环都要i减1
}
System.out.println(sum);//输出累加和 --->55
}
}
do…while循环
do…while循环语句的一般结构是:
/*
do{
循环体语句;
条件控制语句;
}while(关系表达式);
*/
do…while循环与while循环的区别是while循环是先进行判断然后再决定执不执行,而do…while语句是先执行循环体,然后再进行判断是不是继续循环,它能够使得循环体一定能够被执行一次。
如下所示,该java程序也是得到1到10的累加和,不过是使用do…while来得到。
//使用do...while得到1到10的累加和
public class DoWhileDemo //类名
{ //java application程序主入口函数,带命令行参数
public static void main(String[] args) {
int i = 10;//定义i变量
int sum = 0;//定义sum变量用来存放累加和
do{
sum =sum+i;//每次循环进行的累加
i--;//每次循环i减1
}while(i>0);//循环的判断条件
System.out.println(sum);//输出累加和 --->55
}
}