第二周总结

本周重点

1.  java的流程控制语句

1)顺序语句

2)分支语句

3)循环语句

1.新知识 

1.移位运算 : 操作的任然是二进制数据
 <<  左移
 >>  右移
 >>> 无符号右移
左移的操作: 将二进制的整体向左移动指定位数,超出的部分直接丢弃,差的两位就补0 。
            左移的规律 : 需要左移的数乘以2^n,n就是移动多少位。
右移操作:将二进制整体向右移动指定的位数,超出的部分丢弃掉,如果是正数移位就补0,如果是负数就补1.
      右移操作的规律 : 移位数除以2^n,n就是移位数。正数的规律。
      无符号的右移:将二进制整体向右移动指定的位数,超出的部分丢弃掉,空缺的部分无论是正数还是负数都补0.

2. 三目运算符(三元运算符)
 格式:
     (条件表达式)?条件表达式1:表达式2;
       如果条件为true,运算后的结果是表达式1;
        如果条件为flase,运算后的结果是表达式2;
三元运算符:
好处:可以简化if else代码。
弊端:因为是一个运算符,所以运算完必须要有一个结果。
3.运算符的优先级 :
        小括号的优先级最大。
         表达式 : 由运算符和操作数组成的式子叫表达式。
表达式的运算规律: 一般都是从左到右开始计算,除了:赋值运算符从右到左开始计算的。

1.  java中的流程控制语句

语句通常用;来表示结束,流程语句分为三类

1:顺序语句:java中代码从上到下依次执行,顺序语句就是按照从上到下的顺序来执行代码

2:分支语句:  if (如果) -- else (否则)  如果怎么样 否则怎么样

if的使用结构:
      方式一: 单分支结构: if(判断的条件){条件成立做的事情 }
        方式二: 双分子结构: if(判断的条件){条件成立做的事情 }else {条件不成立所做的事情 }
         方式三:多分支结构:if(判断的条件1){条件成立做的事情 }else if(条件二){条件1不成立,条件二所做的事情}else{条件不成立所做的事情}

 提示:为了便于输入数据,使用Scanner这个类,

固定用法Scanner sc=new Scanner(System.in);
    该类需要导入包import java.util.Scanner;
int nextInt = sc.nextInt();获取用户输入的数字
如: int year = sc.nextInt(); 

一.分支语句的结构:

1.分支语句:
           特点: 只要有一个条件成立了,其他条件就不会判断了。
if条件的使用注意事项:
1. 不要在if的小括号后面加分号。 如果你加上了表示if语句还没操作就已经结束。
2. 如果你的if语句后面只跟一个语句,这个大括号是可以省略的。但是如果有多个语句的化就必须要有大括号。

  2.switch ... case 语句。

switch的结构:
       判断值: 整型,字符型数据 或字符串型数据
  switch(需要判断的值){
         case 需要对应判断的值1:
              满足值1的操作;
            break;
      case 需要对应判断的值2:
                满足值2的操作;
            break;
      case 需要对应判断的值3:
                满足值3的操作
            break;
            ...
       default :
           所有的值都不满足的操作   
    }
switch语句特点:
    1,switch语句选择的类型只有四种:byte,short,int , char。
2,case之间与default没有顺序。先判断所有的case,没有匹配的case执行default。
   3,switch语句停止的条件是遇到了break关键字或者结束switch语句的大括号。
        4,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到 break或者switch结尾结束。
   5,switch case中的值必须要与switch表达式的值具有相同的数据类型。而且case后跟的值必须是常量,不能 跟变量。
  swith的后面只能是一个确定的值,不能是一个范围。
switch的使用注意点:
 1.switch具有穿透性。
 2.switch的跳楼现象 : 加了break。
 3.case后跟的是冒号:
    每个case中的执行语句一定要加break;

循环语句:

1. java中循环有3中表现形式:

Java中有三种主要的循环结构:
while循环
do…while循环
for 循环
表现形式一:
 while 循环。
  while 语句的结构:
  while(循环条件){  
 循环内容(循环体)
        }

 2. 什么时候使用循环?

        当需要重复做一件事情的时候就需要使用循环。

例子:  

         获取1-100中能够被3整数的数  

class Demo {
    public staticvoid main(String[] args) {
      int count = 1;
        int sum =0;
       while(count<=100){     
           //判断count是否能被3整数
          if(count % 3 == 0){
             //当前的和=上一次和 + 当前的数
          sum= sum + count;             }
           //循环一次count需要加1
          count++;
        }
       System.out.println(sum);
    }
}

 while循环的使用注意事项:

          1.循环条件需要定义一个变量来控制这个循环.

          2.如果循环操作只有一句话,大括号是可以省略的。不建议大家省略大括号

          3.不要在小括号后面加分号

3. 创建一个随机数对象

   Random random = new Random();

4.do-while :循环

 格式:
     do{
       循环操作。
     }while(循环条件);
     执行流程:
          1.先执行do中的操作
          2.当操作执行完毕,判断条件是否成立。
         成立 : 1-->2  成立1--->2 直到条件不成立。
        do-while特点:
             先执行在判断。循环体至少执行1次。

 5. do-while和while  循环的区别:  

 相同点:都是用来做循环操作,满足条件进入循环体。
         不同点:
               while:先判断后执行。如果条件不成立while循环体永远不会执行。
               do-while :先执行后判断,无论条件是否成立都会执行1次。

 6. for循环:              

   格式:
     for(表达式1;循环条件 ; 表达式2){
        条件成立的循环体;
      }
1.格式:for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
      执行语句;
}

7. for 循环有以下几点说明:

最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环后,更新循环控制变量。
再次检测布尔表达式。循环执行上面的过程。
8.循环的嵌套使用:
    循环中套有另外一个循环。

9.break 关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。

  面试题:需要在通过内部循环来结束外部的循环。

      可以给循环定义一个标签,标签名的命名规范和标识符是一样的。
  通过break指定结束循环。
       格式:
         break 标签名;

10.continue关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中,continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

11. break 和 continue 语句的区别。
在循环结构中:
 break 语句是终止某个循环,程序跳转到循环块外的下一条语句。
 continue 语句是跳出本次循环,进入下一次循环。

12. Java 提供的三种最主要的循环结构,它们是 while、do-while和 for 循环结构。
      无论哪一种循环结构,都有四个必不可少的部分:初始部分、循环条件、循环体、迭代部分,
      缺少了任何一个都可能造成严重的错误。
1)执行顺序不同
 while 循环:先进行条件判断,再执行循环体。如果条件不成立,退出循环。
do-while 循环:先执行循环体,再进行条件判断,循环体至少执行一次。
 for 循环:先执行初始化部分,再进行条件判断,然后执行循环体,最后进行迭代部分的计算。
如果条件不成立,跳出循环。
2) 适用情况不同
在解决问题时,对于循环次数确定的情况下,通常选用 for 循环。对于循环次数不确定的情况,
通常选用 while 和 do-while 循环。

例.import java.util.*;
    class Work{ 
    public static void main(String[] args){           
        //定义一个变量来接收答对的次数
        int count = 0;

        while(true){
             //产生两个10-20之间的随机数
             Random random = new Random();//0-10 +10
             int num1 = random.nextInt(11) + 10;
             int num2 = random.nextInt(11) + 10;
             //随机生成运算符
             int flag = random.nextInt(4)+1;
             //创建一个Scanner对象
             Scanner input = new Scanner(System.in);

             switch (flag){
                case 1:
//做加法
                      System.out.println(num1+"+"+num2+"=?");
                      System.out.println("请输入你的答案:");
                      //获取答案
                      int result = input.nextInt();
                      //判断答案是否正确
                      if(result==(num1+num2)){                        
                         count++;
                         System.out.println("你已经答对"+count+"道题,还需要答对"+(10-count)+"道题");
                      }else {
                        System.out.println("失败乃成功之母,继续努力");
                      }
                    break;
                case 2:
                      //做减法
                     System.out.println(num1+"-"+num2+"=?");
                      System.out.println("请输入你的答案:");
                      //获取答案
                      int result1 = input.nextInt();
                      //判断答案是否正确
                      if(result1==(num1-num2)){                        
                         count++;
                         System.out.println("你已经答对"+count+"道题,还需要答对"+(10-count)+"道题");
                      }else {
                        System.out.println("失败乃成功之母,继续努力");
                      }
                    break;
                case 3:
                       //做乘法
                      System.out.println(num1+"*"+num2+"=?");
                      System.out.println("请输入你的答案:");
                      //获取答案
                      int result2 = input.nextInt();
                      //判断答案是否正确
                      if(result2==(num1*num2)){                        
                         count++;
                         System.out.println("你已经答对"+count+"道题,还需要答对"+(10-count)+"道题");
                      }else {
                        System.out.println("失败乃成功之母,继续努力");
                      }
                    break;
                case 4:
                      //做除法
                      System.out.println(num1+"/"+num2+"=?");
                      System.out.println("请输入你的答案:");
                      //获取答案
                      int result3 = input.nextInt();
                      //判断答案是否正确
                      if(result3==(num1/num2)){                        
                         count++;
                         System.out.println("你已经答对"+count+"道题,还需要答对"+(10-count)+"道题");
                      }else {
                        System.out.println("失败乃成功之母,继续努力");
                      }
                    break;             
               }

            if(count==10){              
               break;
            }
        }
    }
}

自我小结:1.要提高学习效率,完善方法,总结与作业花费时间较长。
 2.基本能掌握所学知识和运用,分析问题逻辑能力待提高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值