Java中的逻辑控制语句

Java中的逻辑控制语句

1. 顺序结构
顺序结构中,代码按照书写顺序一行一行执行,如果调整代码的顺序,执行的顺序也随之发生改变,如下:

 public static void main1(String[] args) {
   System.out.println("aaa");
   System.out.println("bbb");
   System.out.println("ccc");
 }
 //执行结果:
 aaa
 bbb
 ccc

2、分支结构
2.1 if 语句
语法形式:
if语句语法结构主要分为三种,分别是:单分支结构、双分支结构、多分支结构,双分支结构为:

 public static void main2(String[] args) {
  int a = 1;
  if(a==1){//if()括号中的表达式为布尔型;否则报错;
   	System.out.println("yes");//满足条件时运行的代码;
  }else{
   	System.out.println("no");//不满足条件时运行的代码;
  }
 }

多分支结构为:

 public static void main2(String[] args) {
  int a = 1;
  if(a==1){
   	System.out.println("yes");//满足条件时执行代码;
  }else if(a>1){
   	System.out.println("no");//满足a>1条件执行代码;
  }else{
   	System.out.println("no");//以上两个条件都不满足时执行代码;
  }
 }

if 语句解决问题:
①输入年龄,进行判断并输出;

public static void main1(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("输入年龄:");
    int num = scan.nextInt();
    if(num<140){
        if(num<=18){
            System.out.println("少年");
        }else if(num>=19&&num<=28){
            System.out.println("青年");
        }else if(num>=29&&num<=55){
            System.out.println("中年");
        }else{
            System.out.println("老年");
        }
    }
    if(num>=140){
        System.out.println("输入错误!");
    }
}

②输入年份,判断是不是闰年;

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("输入年份:");
    int year = scan.nextInt();
    if(year%100==0){
        if(year%400==0){
            System.out.println(year+"是闰年");
        }else{
            System.out.println(year+"不是闰年");
        }
    }else{
        if(year%4==0){
            System.out.println(year+"是闰年");
        }else{
            System.out.println(year+"不是闰年");
        }
    }
}

注意事项:
①else悬垂问题:if/else语句中不加大括号也可以写语句,不加大括号是,else与离它最近的if匹配,运行中可能出现错误,建议最好加上大括号;
②Java中if语句书写时,最好将大括号与if/else放在同一行;
③注意if()后边不能加封号,加上封号,大括号中的语句就与if无关,运行会出错;
2.2 switch 语句
语法格式:

 public static void main4(String[] args) {
  int a = 1;
  switch (a){//根据switch中的值,执行对应的case语句;
   case 1:
   	System.out.println("1");
   	break;//遇到break,结束该case语句;
   case 2:
   	System.out.println("2");
   	break;
   default:
   	System.out.println("错误");//如果没有对应的case语句,执行default语句;
   	break;
  }
 }

注意事项:
①不能遗漏break,否则case语句依次向下执行,失去多分支的效果;
②switch中的值,只能是整数、枚举、字符、字符串,输入其他类型会出现不兼容错误;
③switch不能表达复杂的条件,因此if比switch更加常用;
④switch支持嵌套,但是代码书写出来不太美观,因此不建议用switch嵌套;
3、循环结构
3.1 while 循环
语法格式:

 public static void main5(String[] args) {//打印1-10的整数;
  int a = 1;
  while(a<=10){//循环条件为真,则执行大括号中的循环语句,否则结束循环;
   	System.out.println(a);
   	a++;
  }
 }

while 循环解决问题:
①计算1-100的和:

public static void main(String[] args) {//计算1-100的和;
    int i = 0;
    int j = 0;
    while(i<=100){
        j += i;
        i++;
    }
    System.out.println(j);
}

②计算1-5整数阶乘的和;

 public static void main8(String[] args) {//计算1-5的阶乘的和;
 	int j = 1;
  	int num = 0;
  	while(j<=5){
   		int i = 1;
   		int fac = 1;//每个数字的阶乘,必须在循环中重置;
  	while(i<=j){
   		fac = fac*i;
  		i++;
  	}
   		j++;
  		num = num + fac;
  	}
   	System.out.println(num);
 }

注意事项:
①和if语句一样,while()后可以不加大括号,但是不加大括号时,只支持一条语句,建议加上;
②大括号建议和while写在同一行;
③while()后边不要加封号,否则可能报错;
3.2 break
break可以让循环提前结束;

 public static void main(String[] args) {
  	int i = 1;
  	while(i<=100){
   		if(i%3==0){
    			System.out.println(i);
    			break;
   		}
  	 	i++;
  	}
 }

在循环中,遇到break,就会让循环提前结束;
3.3continue
continue的功能是跳过此次循环,进入下一次循环;

 public static void main9(String[] args) {
  int i = 1;
  while(i<=100){
   if(i%3==0){
    System.out.println(i);
    continue;//跳过此次循环,进行下次,不执行i++,进入死循环;
   }
   i++;
  }
 }

3.4 for 循环
语法格式:

 public static void main12(String[] args) {//for循环计算1-100的和;
  	int sum = 0;
  	for(int i = 1;i<=100;i++){//表达式1;表达式2;表达式3,将初始化循环变量、循环条件、更新循环变量三部分总结到一起,不易遗落;
   		sum = sum + i;
  	}
   	System.out.println(sum);
 }

代码示例:

public static void main8(String[] args) {//计算1/1-1/2+1/3...-1/100的值;
    double sum = 0;
    int flg = 1;
    for(int a = 1;a<=100;a++){
        sum += (1.0/a)*flg;//符合运算符,提升类型,不用强制类型转换;
        flg = -flg;
    }
    System.out.println(sum);
}
public static void main9(String[] args) {//求1-100之间9出现的次数;
    int sum = 0;
    for(int i = 1;i<=100;i++){
        if(i%10==9){
            sum++;
        }
        if(i/10==9){
            sum++;
        }
    }
    System.out.println(sum);
}

注意事项与while循环一样;

3.5 do while 循环
语法格式:

public static void main(String[] args) {
    int a = 1;
    do{
        a++;
    }while(a<10);
    System.out.println(a);
}

先执行循环语句,再判定循环条件;
注意事项:
①判断条件后的封号不要忘记;
②一般推荐使用for或while循环语句;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值