【Java基础】特殊语句:判断语句 & 循环语句

判断语句

if语句

三种格式:

  1. if(条件表达式){
        执行语句;
    }
    
  2. if(条件表达式){
        执行语句;
    }
    else{
        执行语句;
    }
    
  3. if(条件表达式){
        执行语句;
    }
    else if(条件表达式){
        执行语句;
    }
    ……
    else{
        执行语句;
    }
    
  • 需要执行的代码多于1条,必须加大括号,否则可以省略大括号

  • 三种格式分别都是独立的整体结构

  • else总是和离它最近的、且没有对应的else的if对应

    int a=5;
    if(a>10)
    {
        System.out.println("He11o");
    	a++;
    }else{
    	System.out.println("hehe");
    	a--;
    }
    if(a>6)
    	if(a>20)
    		System.out.print1n( "haha");
    	else
    		System.out.println("ok");
    
  • 执行效率

    • 低效代码:执行四次判断

      //score:  >=90 A    >=80 B   >=60 C    <60 D
      int score=88; 
      if(score>=90 && score<=100)
      	System. out. println("A");
      if(score>=80 && score<90)
      	System. out . print1n("B");
      if(score>=60 && score<80)
      	System. out . println("C");
      if( score<60)
      	System. out . print1n("D");
      
    • 高效代码:执行两次判断

      if(score>=0 && score<=100)
      {
      	if(score>=90)
      		System. out . println("A");
      	else if(score>=80)
      		System. out. println("B");
      	else if(score>=60)
      		System. out. println("C");
      	else
      		System. out . println("D");
      }
      

switch语句

switch(表达式)
{
	case 取值1:
		执行语句;
		break;
	case 取值2:
		执行语句;
		break;
    ……………………
	default:
		执行语句;
		break;
}       

要点:

  • 遇到break} 才会停止执行;

  • 小括号里的数值,必须是byte、short、int、char、枚举或者字符串;

  • 先计算小括号中的值,然后依次和case后面的值比较p和哪个case后面的值相同了,就执行哪个case后面的语句;

  • 如果和所有case后面的值都不相同,则执行default后面的语句。

    class Demo
    {
    	public static void main(String[] args)
    	{
            int i=3;
    		switch(i)
    		{	
    			default:
    				i+=2; 
    			case 1:
    				i+=1; 
    			case 4:
    				i+=8;	
    			case 2:
    				i+=4; 
    		}
    		System.out.println("i="+i);  //输出结果为18
    	}	
    }
    
  • 如果default语句在所有case最后,此时可以不加break 如果default语句之后还有case语句,如果不加break,则default语句执行过之后会继续下面的case语句,此时必须要在default之后加break语句,不过这种default用法是不推荐的,default顾名思义是缺省情况,只有任何条件都不匹配的情况下才会执行,所以应该将default语句放在所有case结束之后。

int age=13;
switch(age){
    case 12:System.out.print1n("年龄为12");
			break;
	case 13:System.out.print1n("年龄为13");
			break;
        	//若不写break则会执行case后面的语句,直到遇到break或右大括号
	case 14:System.out.println("年龄为14");
			break;
	default:
			System.out.print1n("年龄不合理");
			break; 
}

循环语句

while语句

步骤:

  1. 先判断条件是否成立,如果成立,则执行大括号中的代码;
  2. 执行完,再次判断条件是否成立 ,如果成立则执行大括号中的代码;
  3. 如此反复,直到条件不成立时,循环结束;
while(条件)
{
    需要被重复执行的语句;
}

int num=1;
while(num<=5)//循环5次
{
    System.out.print1n("Hello");
    num++;
}

do while语句

步骤
  1. 先执行大括号中的语句;
  2. 判断条件是否成立,如果成立,则再次执行大括号中的语句;
  3. 执行完,再判断条件是否成立,如果成立,再执行卡括号中的代码;
  4. 如此反复,直到条件不成立时循环结束。
与while语句的异同
  • do{……}while==;==
  • 该循环至少执行一次。
  • 条件成立时,循环次数一致(例子中,都循环了5次)。
do
{
    需要被重复执行的语句
}while(条件);

int num=1;
do{
    System.out.print1n("Hello");
    num++;
}while(num<=5);//循环5次

for语句

格式
for(表达式1; 表达式2; 表达式3;)
{
    需要被重复执行的语句; 
}

表达式1:和循环相关的变量的初始化语句;
表达式2:循环需要满足的条件;
表达式3:改变和循环相关的变量值的语句;

步骤
  1. 先执行表达式1(只执行1次);
  2. 判断表达式2的条件是否成立,若成立,则执行大括号中的代码;
  3. 执行完,执行表达式3;
  4. 再判断表达式2的条件是否成立,若成立,则执行大括号中的代码;
  5. 如此反复,直到表达式2不成立。

重复执行的部分为:表达式3 → 表达式2 → 需要被重复执行的语句

for(int i=1;i<=5;i++)//循环5次
{
    System.out.println("hel1o");
}
System.out.println(i);//找不到符号i
//变量的作用域:变量的有效范围,从这个变量定义的位置开始,到其所在的大括号结束.
//从内存方面看,for循环,更省内存,循环结束,释放i的内存
//如果循环结束后,不再需要使用变量,适合使用for循环
省略表达式
  • 省略表达式1

    int j=1;
    for(;j<=5;j++){
        
    }
    
  • 省略表达式2:死循环

    for(int i=1;;i++)
    {
    	System.out.println(i); 
    }
    
  • 省略表达式3

    for(int i=1;i<5;)
    {
    	System.out.println(i); 
        i++;
    }
    
  • 省略3个表达式

    int j=1;
    for(;;)
    {
    	System.out.println(i); 
        i++;
    }
    

结束循环

break语句

作用及要点
  • 结束所属的循环

  • 后面不能再跟语句,会语法错误,无法访问的语句

//break:结束循环
for{int i=1;i<=5;i++)
{
	if(i==3)
		break;
	System.out.println(i);
}

for(int i=1;i<=5;i++)
{
	if(i==3)
	{
		break;
		//System.out.println(i);//无法访问的语句,语法错误
	}
	System.out.println(i);
}

//
for(int i=1;i<=5;i++)
{
	for(int j=1;j<=3;j++)
	{
		if(j==3)
			break;//结束的是所属的循环
	}
	System.out.println(i);//12345
}

//结束指定循环
m:for(int i=1;i<=5;i++)
{
	n:for(int j=1;j<=3;j++)
	{
		if(j==3)
			break m;
	}
	System.out.println(i);//不打印
}
    
//用break结束无条件循环
int x=1;
for(;;)
{
	X++ ;
	if(x==50)
		break;
}

continue语句

作用及要点
  • 结束某一次循环,直接进入下一次循环

  • 后面不能再跟语句,会语法错误,无法访问的语句

for(int i=1;i<=5;i++)
{
	if(i==3)
		continue;//结束某一次循环,直接进入下一次循环,也就是i++
	System.out.println(i);
}
//输出:1 2 4 5
  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值