您的位置:首页 > 编程语言 > Java开发

Java语法基础之语句

2013-07-15 16:19 211 查看
程序流程控制语句

分四类:

a) 判断结构(if)

b) 选择结构(switch)

c) 循环结构(do while;while;for)

d) 其他流程控制语句(break;continue)

一、判断结构(if)

1、if语句三种格式:

1, if(条件表达式) 3, if(条件表达式)

{ {

执行语句; 执行语句;

} }

2, if(条件表达式) else if (条件表达式)

{ {

执行语句; 执行语句;

} }

else ……

{ else

执行语句; {

} 执行语句;

}

2、If语句特点:

a) 每一种格式都是单条语句。

b) 第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。

c) 条件表达式无论写成什么样子,只看最终的结构是否是true或者false。

3、注意事项:

1) 第三种格式中只要有一个满足条件的就结束。

2) if到第一个分号“;”为止。

3) ifelse 结构 简写格式:变量=(条件表达式)?表达式1:表达式2;相当于三元运算符。

4) 三元运算符:好处:可以简化if else 代码。弊端:因为是一个运算符,所以运算完必须要有一个结果。

4、练习:

1,需求1:根据用户定义的数值不同。打印对应的星期英文。

class IfTest
{
public static void main(String[] args)
{
//需求1:根据用户定义的数值不同。打印对应的星期英文。

int num = 1;

if(num==1)
System.out.println("monday");
else if(num==2)
System.out.println("tsd");
else
System.out.println("nono");
}
}

2,需求2:根据用于指定月份,打印该月份所属的季节。
class IfTest
{
public static void main(String[] args)
{
//需求2:根据用于指定月份,打印该月份所属的季节。
//3,4,5 春季 6,7,8 夏季  9,10,11 秋季 12, 1, 2 冬季
int x = 4;
if(x==3 || x==4 || x==5)
System.out.println(x+"春季");
else if(x==6 || x==7 || x==8)
System.out.println(x+"夏季");
else if(x==9 || x==10 || x==11)
System.out.println(x+"秋季");
else if(x==12 || x==1 || x==2)
System.out.println(x+"冬季");
else
System.out.println(x+"月份不存在");

if(x>12 || x<1)
System.out.println(x+"月份不存在");
else if(x>=3 && x<=5)
System.out.println(x+"春季");
else if(x>=6 && x<=8)
System.out.println(x+"夏季");
else if(x>=9 && x<=11)
System.out.println(x+"秋季");
else
System.out.println(x+"冬季");
}
}

二、选择结构

1、switch语句格式:

switch(表达式)

{

case 取值1:

执行语句;

break;

case 取值2:

执行语句;

break;

……

default:

执行语句;

break;

}

2、switch语句特点:

工作原理:用switch后小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了,就执行哪个case后面的语句,如果没有相同的则执行default后面的语句。

细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止;

2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;

3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。

4):结束switch语句的两种情况:遇到break,执行到switch语句结束。

3、练习

需求2:根据用于指定月份,打印该月份所属的季节。

class  SwitchTest
{
public static void main(String[] args)
{

//需求2:根据用于指定月份,打印该月份所属的季节。
//3,4,5 春季 6,7,8 夏季  9,10,11 秋季 12, 1, 2 冬季

int x = 4;

switch(x)
{
case 3:
case 4:
case 5:
System.out.println(x+"春季");
break;

case 6:
case 7:
case 8:
System.out.println(x+"夏季");
break;
case 9:
case 10:
case 11:
System.out.println(x+"秋季");
break;
case 12:
case 1:
case 2:
System.out.println(x+"冬季");
break;
default:
System.out.println("nono");
}
System.out.println("Hello World!");
}
}

注意事项:
if与switch语句。
具体什么场景下,应用哪个语句呢?
如果判断的具体数值不多,而是符合byte short int char这四种类型。
虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

三、循环结构

代表语句:while,do while, for

1,while语句格式:

while(条件表达式) do while语句格式:

{ do

执行语句; {

} 执行语句;

}while(条件表达式);

while:先判断条件,只有条件满足才执行循环体。
do while: 先执行循环体,在判断条件,条件满足,再继续执行循环体。
简单一句话:do while:无论条件是否满足,循环体至少执行一次。

2,while与do while 举例:

class WhileDemo
{
public static void main(String[] args)
{

/*定义初始化表达式;
while(条件表达式)
{
循环体(执行语句);
}
*/
int x = 1;
while(x<3)
{
System.out.println("x="+x);
x++;
}
int x1 = 1;
do
{
System.out.println("do : x1="+x1);
x1++;
}
while (x<3);

int y = 1;
while(y<3)
{
System.out.println("y="+y);
y++;
}
}
}

3,for语句格式:

for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}

4,while与for注意事项:

注:

a) for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止,

b) while 与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放,而while循环使用的变量在循环结束后还可以继续使用。

c) 最简单无限循环格式:while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

for和while的示例:

class ForDemo
{
public static void main(String[] args)
{
/*
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
*/
for(int x = 0; x<3 ; x++)
{
System.out.println("x="+x);

}
//System.out.println("x===="+x);

int y=0;
while(y<3)
{
System.out.println("y="+y);
y++;
}
System.out.println("y===="+y);
}
}

通过示例的总结如下:

1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效。
for语句执行完毕。该变量在内存中被释放。
2,for和while可以进行互换。如果需要定义循环增量。用for更为合适。
3,什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。

for执行时小小注意点:

a) 条件既不是真也不是假,编译失败。

class ForTest
{
public static void main(String[] args)
{
for(System.out.println("a"); System.out.println("b");System.out.println("c"),x++)
{
System.out.println("d"); //编译失败,条件既不是真也不是假,编译失败。
}
int x = 1;
for(System.out.println("a"); x<3 ;System.out.println("c"),x++)
{
System.out.println("d");
x++;
}
//结果为adcdc
}
}

b) 无限循环的最简单表现形式:
for(;;){}
while(true){}

小小总结:

ifswitch do while while for

这些语句什么时候用?

1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。但是建议使用switch,效率相对较高。

2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。

3)、当某些语句需要执行很多次时,就用循环结构。

四、其他流程控制语句

break(跳出),continue(继续)

break语句:应用范围:选择结构和循环结构。

break:作用于switch ,和循环语句,用于跳出,或者称为结束。

break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号

continue语句:应用于循环语句。

continue:只作用于循环结构,继续循环用的。

作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

注:

a) 这两个语句离开应用范围,存在是没有意义的。

b) 这两个语句单独存在下面都不可以有语句,因为执行不到。

c) continue语句是结束本次循环继续下次循环。

d) 标号的出现,可以让这两个语句作用于指定的范围。

寄语:学习语句时,才发现数学是如此的重要,虽然我没有时间再回到学校学习数学了,加油吧!。。。 ——濛濛
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: