夹哇基础知识总结part3(逻辑控制)

java中的逻辑控制

(一)分支结构

  分支结构,顾名思义,指的是程序运行到该处,经过该逻辑控制语句后,会选择其中一条分支向下执行。就像开车时遇到分叉路口一样,我们只能从中选择一条路继续行驶,分支结构亦是如此。。。

(1)switch……case……

switch的用法规则是:
switch(参数值){
   case 值1:表达式1;
   case 值2:表达式2;
   case 值3:表达式3;
    …
   default:退出;

  根据括号中的参数的值,进行判断,是否与下列的case中的值相同,如果相同,则执行相应分支下的表达式,并且分支执行完毕,如果没有找到对应的case 值 与其相同,则执行默认default分支,并且退出分支。

		int a = 10;
        switch(a) {
            case 1:
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
                break;
            default:
                System.out.println("请输入正确的数字!");
                break;
        }

注意:
   switch中的参数只能是整数,字符,枚举,字符串
   switch中不能是复杂的表达式
   不建议使用switch进行嵌套

(2)if……else……

if……else……结构的使用规范是:
          if(表达式1){
             语句1;
          }
          else{
             语句2;
          }
当表达式1的逻辑值为真时,执行语句1,否则执行语句2

        int num = 10;
        if (num==10){                         //if()括号里的值必须是一个boolean类型
            System.out.println(num);
        }
        else{
            System.out.println(8);
        }
        //悬垂else:else只会与最近的if结合。所以最好编程的时候不要省略括号
        int x = 20;
        int y = 10;
        if (x == 10)
            if (y == 10)
            System.out.println("aaa");      //运行结果是什么都不打印。
        else
            System.out.println("bbb");

当然,if……else……结构也支持多分支结构,只需要在第一个分支下面继续写else if ()即可,但是需要注意的是:
    所有的if(表达式)括号中的表达式的值都必须是boolean类型的。
    该分支结构具有一个特征:悬垂elseelse只会与最近的if结合。
    所以最好编程的时候不要省略括号,
    如果省略括号的话,程序就只会把接下来的第一条语句作为分支内第二条以
    及后续都会作为分支外的语句。

(二)循环结构

循环结构,为了达到某个目的,从而反复执行某段代码。

(1)while()……

用法:
  while(表达式){
     循环体;
  }
表达式的逻辑值为时,执行循环体的内容,
并且一般程序不允许出现死循环的出现,所以为了避免出现死循环,应当在循环体内部定义可以改变表达式1的值的语句,从而来避免死循环。

        int a = 10;
        while(a != 10){                         //while循环中只能放布尔表达式。
            System.out.println("执行内容");
        }
        //计算5的阶乘:5!=5*4*3*2*1.
        int num = 5;
        int  i = 1;                            
        int ret = 1;                            //定义一个变量用来记录当前n的阶乘
        while(i <= num){
            ret *= i;
            i++;
        }
        System.out.println(ret);

注意:
  while(表达式) 中表达式的值依然必须是一个布尔类型(bollean)。

(2)for()……

用法:
   for(参数a;布尔表达式b;语句c){
       循环体;
   }

  在for循环中,首先要有一个参数a,然后根据包含参数a的布尔表达式b的值的真假来决定是否要执行循环体内容,true执行,false不执行。然后执行语句c,一般情况下,语句c都是为了避免死循环而对参数a进行的修改操作,例如:++(自增) 或 --(自减);

    //for循环求n的阶乘的和
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入要求的数:");
        int num = scan.nextInt();                   //从键盘获取要求的数的阶乘数。

        int sum = 0;                                //用来记录阶乘和
        for (int i = 1 ; i <= num ; i++ ){
            int ret = 1;                            //用来记录n的阶乘
            for (int j = 1 ; j <= i ; j++){
                ret *=j;
            }
            sum += ret;
        }
        System.out.println(num + "的阶乘和是:" + sum);
    }

(3)do……while()

用法:
    do{
      循环体;
    }while(表达式)

该结构与while()……结构的区别是:do……while() 结构的循环体是至少执行一次的,不论while 表达式的真假,循环体都至少执行一次,而while()结构,如果一开始表达式的值就为假,那么循环体是一次都不执行的。

    //do  .....while()  用的极少
    public static void main(String[] args) {        //先执行一次,然后再根据条件决定是否继续执行
        int num = 0;
        do {
            System.out.println("hello");
        }while (num != 0);
    }

 其他tips

break;

  break用于跳出一层循环,循环体执行时,遇到break,立刻跳出当前循环,也可用于switch……case……结构;break只能用于跳出循环和switch

continue;

  continue用于跳过本轮循环。紧接着执行下一趟循环。

以上内容均为个人学习时经验所得,如有纰漏或错误,有劳指正!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值