Java基础——控制语句

条件判断语句

条件判断语句如果为真,就执行花括号内的语句,相当于人类语言中的“如果…那么…”

if…else语句

使用if、else、else if等保留字,如果需要执行的语句就只有一个,就可以不加花括号。

int i = 1;
if(i > 0) {
	i++;
	System.out.print(i);
}

这里先判断i是不是大于0,大于0把i加1,再打印i。

if语句还可以和else语句组合

int i = 1;
if(i > 0) {
	i++;
	System.out.print(i);
}
else i -= 9;

如果i不大于0,就把i减9。

如果需要判断的条件大于2个,还可以加上else if语句。

int i = 1;
if(i > 0) {
	i++;
	System.out.print(i);
}
else if(i == 0) i -= 9;
else{
	i << 1;
	System.out.print(i);
}

这里先判断i是不是大于0,再判断i是不是等于0,最后如果以上都不满足,就执行else语句后面的内容。

if语句内如果使用return语句,必须在花括号外再加一个return语句,否则无法编译。

int i = 1;
if(i > 0) {
	i++;
	return i;
}
return i;

三元运算符

如果是只有两种情况的if语句可以用三元运算符替代。格式是条件 ? 语句1 : 语句2,条件成立执行语句1,否则执行语句2。

int a = 1;
a > 0 ? ++a : --a;

如果a大于0,就把a加1,否则把a减1。

switch语句

在判断条件很多的情况下,比如需要实现状态机的时候,可以使用switch语句替代if语句。


	switch(a){
         case 1:
         case 2:
             x+=10;
             break;
         case 3:
             x+=16;
             break;
         default:
             x +=34;
	 }

a是需要用于判断的变量,case后面 跟判断条件,问号后面跟语句,default相当于else。

只有到break,switch语句才会停止执行,如果case 2没有break,即使a == 2,还会执行case 3。所以,一般不用switch语句。如果使用switch语句,编译时在类名前加-Xlint:fallthrough,比如javac -Xlint:fallthrough Test.java

循环执行语句

如果不满足设置的条件,那么就会一直执行花括号内的语句。

while语句

格式是while(条件) 执行语句

int a = 0;
while(a < 100){
	a++;
	System.out.print(a);
}

如果a小于100,就一直执行a++;System.out.print(a);。当a等于100时,就跳出while语句,执行后面的语句。

如果需要至少执行一次循环内的语句,那么就需要用do 保留字。

int a = 0;
do{
	a++;
	System.out.print(a);
}
while(a < 0);

尽管a不满足条件,但a还是加1并被打印出来。

如果条件设置为true,那么就是一个无限循环,会一直执行到程序崩溃。

int a = 0;
while(true){
	a++;
	System.out.print(a);
}

for语句

for语句和while语句不同之处在于,for语句还需要一个“计数器”,即一个用来计数的变量,一般格式是“for(计数器;终止条件;计数器运算)”

int a = 2;
for(int i=0; i<100; i++){
	a *= a;
}

这里计数器是i,如果i小于100,就让a乘以自己,其实就是2的100次方运算。

计数器也可以在循环外定义

int a = 2;
int i=0;
for(; i<100; i++){
	a *= a;
}

也可以定义多个计数器

int a = 2;

for(int i=0, j=100; i < j; i++, j--){
	a *= a;
}

转向语句

转向语句可以在满足循环条件的情况下终止或跳出某次循环,goto还是Java的保留字,但已经不再使用。

break语句

break语句可以直接终止循环控制语句。

int a = 0;
while(true){
	a++;
	System.out.print(a);
	break;
}

虽然设置的条件是无限循环,但执行到break语句就会直接终止while循环。

除了单独使用外,break语句还可以和条件判断语句一起使用。

int a = 0;
while(true){
	a++;
	System.out.print(a);
	if(a == 10)break;
}

当a等于10时,跳出循环。

continue语句

continue语句只会打断这一次的循环,然后执行下一次循环。

int a = 2;
for(int i=0; i<100; i++){
	if(i / 4 == 0 ) continue;
	a *= a;
}

如果i是4的倍数,那么不执行a *= a

嵌套

以上的这些控制语句都可以相互嵌套

比如for语句内还可以再嵌套一个for语句。

		for(int i=1; i<10; i++) {
			for(int j=i; j<10; j++) {
				System.out.println(i+"*"+j+":"+i*j);
			}
		}

这里在i=1时,执行第二个for循环,执行完后再执行i=2时的循环,依此类推。

不同语句也可以相互嵌套。

int a= 0;
if(a == 0){
	while(a < 100) a++;	
}

如果a为0,就执行while语句。

在嵌套语循环句的时候,有时使用continue和break语句,需要跳到外面的循环语句,这时我们就可以在continue和break后面加上标签,我们就把这种break和continue语句称为带标签的break和continue语句

		out: for (int i=101; i<150; i++) {
            for(int j=2; j<i/2; j++) {
                if (i%j == 0) continue out;
            }
            System.out.println(i + " ");
         }

out是标签,先加在要跳回的步骤前面,再加在continue或break后面,再本例中,如果发现有整除的情况,就直接跳回for循环,而不会去执行打印。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值