逻辑控制语句

1、顺序结构           按照代码书写的顺序一行一行执行 

        System.out.println("aaa");
        System.out.println("bbb");
        System.out.println("ccc");

//       执行结果
//        aaa
//        bbb
//        ccc


        System.out.println("aaa");
        System.out.println("ccc");
        System.out.println("bbb");

//       执行结果
//        aaa
//        ccc
//        bbb

2、分支结构(条件)

(1)*** if 语句

A、 考90分以上奖励鸡腿   

   int score = 92;
   if(score >= 90) {                       // 格式1  if (布尔表达式){
      System.out.println("吃个大鸡腿!");  //           语句
   }                                      //         }
     //     正确    吃个大鸡腿!

B、考90分以上奖励鸡腿,否则没有鸡腿

   int score = 92;
   if(score >= 90) {                                  // 格式2  if(布尔表达式){
       System.out.println("优  秀,吃个大鸡腿!");    //         语句1
   }else {                                           //         } else {
       System.out.println("不优秀,不吃大鸡腿!");   //          语句2
   }                                                 //         }
    //        92   优  秀,吃个大鸡腿!
    //        82   不优秀,不吃大鸡腿!

C、给学生的成绩判定等级


            int score = 80;
            if(score >= 90){                  //格式3  if (布尔表达式1){
                System.out.println("优秀");   //          语句1
            }else if(score >= 80 ){           //        } else  if (布尔表达式2){
                System.out.println("良好");   //          语句2
            }else if(score >= 70 ){           //        } else {
                System.out.println("中等");   //          语句3
            }else if(score >= 60 ){           //        }
                System.out.println("及格");
            }else if(score >= 0 ){
                System.out.println("不及格");
            }else{
                System.out.println("错误数据");
        }
//                   90   优秀
//                   80   良好
//                   70   中等
//                   60   及格
//                   50   不及格
//                   -6   错误数据

 D、判断一个数字是奇数还是偶数

   int num = -9;
   if (num % 2 == 0){                 // 若为 if (num % 2 != 1),不可以用1判断
      System.out.println("num 是偶数"); //逻辑不等价,当为负数时会出错,例如-5会被判定为偶数
   } else {
      System.out.println("num 是奇数");
   }
         
      //  10  num 是偶数   // 当用1来判断( -5  num 是偶数 ) 得到一个错误判断
      //   9  num 是奇数   // 考虑情况时应该思考是否考虑周全



E、 判断一个年份是否为闰年

    int year = 2000;
    if (year % 100 == 0) {               // 判定世纪闰年
       if (year % 400 == 0) {            // 能被100整除并且能被400整除
            System.out.println("是世纪闰年");
       } else {
            System.out.println("不是世纪闰年"); // 不是闰年,能被100整除并且不能被400整除
       }
    } else {                              // 普通闰年
       if (year % 4 == 0) {               // 不能被100整除并且能被4整除
            System.out.println("是闰年");
        } else {
            System.out.println("不是闰年"); // 不是闰年,不能被100整除并且不能被4整除
   }
 }
//           2000   是世纪闰年;   1800   不是世纪闰年;
//           2008   是闰年;      2002   不是闰年;

 (2)*** switch 语句

        int day = 2;
        switch(day) {                         // switch (表达式) {
            case 1:                           // case 常量值1:
                System.out.println("星期一");  // 语句1;
                break;                        // break;
            case 2:                           // case 常量值2:
                System.out.println("星期二");  // 语句2;
                break;                        // break;
            case 3:                           // ......
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:                            //  default : {
                System.out.println("输入有误"); //  上面内容都不满足时执行的语句
                break;                         //   break;
        }                                      //   }
//       1  星期一;    10  输入有误;
//       当没有break会继续打印,比如:case 1中没有break,结果:   1  星期一
//                                                                  星期二

3、循环结构

    (1) *** while 循环

   A、 打印1-10的数字         

  int num = 1;
  while (num <= 10){                     // while (布尔表达式){
     System.out.println(num);            // 循环语句
     num++;
}                                        // }

  B、 计算1-100的和          

  int i = 1;
  int sum = 0;
  while (i <= 100) {
      sum += i;         // 等价于 sum = sum +i;
      i++;
  }
  System.out.println(sum);
//   结果    5050    //考虑到效率,最好采用高斯公式 (1 + 100)* 100 / 2
//   若想求1——n的和,可以改动两处   1、 增加 int n = 某值 2、修改 while (i <= n)

   C、计算1 * n的和 (若n为6,即为6!)
        

 int i = 1;
 int result = 1;         //与加法有所不同,此时为1;
 int n = 6;
 while (i <= n){
     result *= i;     // 等价于 result = result * i;
     i++;
 }
  System.out.println(result);

//    结果     720

 D、计算1! + 2! + 3! + 4! +5!

     int num = 1;
     int sum = 0;                   //外层循环求阶乘的和
     while (num <= 5){
         int factorResult = 1;
         int tmp = 1;              //里层循环负责完成求阶乘的细节
         while (tmp <= num){
              factorResult *= tmp;
              tmp++;
          }
         sum += factorResult;
         num++;
      }
      System.out.println("sum = " + sum);

         //         结果     sum = 153

 E、  二层循环,打印99乘法口诀表

    int i =1;
    while (i <= 9){
      int j = 1;
      while (j <= i ){
         System.out.print(j + "*" + i + "=" + i*j + " " ); //中间的i*j,若为加号,要加括号。 此时打印不用换行,所以为print
         j++;
      }
      i++;
     System.out.println();    //此时打印完一行了,所以需要换行,故为println
    }

//     结果
//     1*1=1
//     1*2=2 2*2=4
//     1*3=3 2*3=6 3*3=9
//     1*4=4 2*4=8 3*4=12 4*4=16
//     1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
//     1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
//     1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
//     1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
//     1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

F、 打印图形如下   向右靠齐
//                X
//              XX
//            XXX
//          XXXX
//        XXXXX

   int i =1;
   int n =5;                                // 其中空格与X数相加应该为 n
   while (i < n){
     for ( int j = 0 ; j < n - i ; j++){  //打印 空格 n-i;
           System.out.print(" ");         // 此时打印空格不用换行,所以为print
     }for (int j = 0 ; j < i ; j++){      // 打印 X 为 i;
          System.out.print("X");          // 此时打印X不用换行,所以为print
     }
     i++;
     System.out.println();        //此时打印完一行了,所以需要换行,故为println
   }

G、打印图形如下
//          X
//        XXX
//      XXXXX

   int i =1;
   int n =5;
   while (i < n){
     for ( int j = 0 ; j < n - i ; j++){      //打印 空格 n-i;
                System.out.print(" ");        // 此时打印空格不用换行,所以为print
     }for (int j = 0 ; j < 2 * i - 1 ; j++){  // 打印 X 为 2 * i - 1;
                System.out.print("X");        // 此时打印X不用换行,所以为print
     }
     i++;
     System.out.println();         //此时打印完一行了,所以需要换行,故为println
   }  

(2)  *** break  (让循环提前结束)

  A、找到100-200中第一个3的倍数
        

   int num = 100;
   while(num <= 200){
     if (num % 3 == 0){
        System.out.println("是3的倍数,为:" + num);
        break;     //若此时不加break,会继续运行,最终得到100-200中所有3的倍数
     }
     num++;
   }
//                   执行结果     是3的倍数,为 : 102

   (3)  *** continue  (跳过这次循环,立即进入下次循环)

A、找到100-200中所有3的倍数

 int num = 100;
 while (num <= 200){
    if (num % 3 !=0){
       num++;      //这里的num++不能忘记,否则会一直为“是3的倍数,为102”的一个死循环
       continue;
      }
     System.out.println("是3的倍数,为:" + num);
     num++;
 }
//                 执行结果    是3的倍数,为:102
//                             是3的倍数,为:105
//                             是3的倍数,为:108
//                             是3的倍数,为:111
//                             是3的倍数,为:114
//                             是3的倍数,为:117
//                             是3的倍数,为:120
//                             是3的倍数,为:123
//                             是3的倍数,为:126
//                             是3的倍数,为:129
//                             是3的倍数,为:132
//                             是3的倍数,为:135
//                             是3的倍数,为:138
//                             是3的倍数,为:141
//                             是3的倍数,为:144
//                             是3的倍数,为:147
//                             是3的倍数,为:150
//                             是3的倍数,为:153
//                             是3的倍数,为:156
//                             是3的倍数,为:159
//                             是3的倍数,为:162
//                             是3的倍数,为:165
//                             是3的倍数,为:168
//                             是3的倍数,为:171
//                             是3的倍数,为:174
//                             是3的倍数,为:177
//                             是3的倍数,为:180
//                             是3的倍数,为:183
//                             是3的倍数,为:186
//                             是3的倍数,为:189
//                             是3的倍数,为:192
//                             是3的倍数,为:195
//                             是3的倍数,为:198

(4) *** for 循环

 A、打印1-10的数字

 for (int i = 1; i <= 10; i++){     // for (表达式1; 表达式2; 表达式3){
     System.out.println(i);         //     表达式4;
  }                                 //    }
     //执行过程: 1243 - 243 - 243 - 243 - 243 - 2为false,循环结束

    B、计算1-100的和

int sum = 0;
 for (int i = 1; i <= 100; i++){
     sum += i;
 }
  System.out.println("sum = " + sum);
//    执行结果   sum = 5050

C、计算6!(6的阶乘)

int result = 1;                       //此时result不可等于0
  for (int i = 1; i <= 6; i++){
       result *= i;
  }
 System.out.println("result = " + result);
//      执行结果   result = 720

 D、计算1! + 2! + 3! + 4! +5!
      

 int sum = 0;
  for (int i = 1; i <= 5; i++){
    int result = 1;
     for (int j = 1; j <= i ;j++){
         result *= j;
     }
     sum += result;
 }
 System.out.println("sum = " + sum);
//     执行结果    sum = 153

(5)*** do while 循环(选学)

 打印1-10

 int num = 1;
 do {                        // do {
   System.out.println(num);  //    循环语句;
   num++;
 } while (num <= 10);        // } while (循环条件)


          

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值