tushao
不忘初心,无限更新流学习单位,总结每日学习资料,总结写代码中遇到的问题

1.位运算符:二进制的变化
<< 左移位运算符 5<<3=5*2^3
>> 右移位运算符 5>>3=5/2^3
>>> 无符号右移,高位补0
& 与运算 数字二进制比较,都为 1 才为1
| 或运算 数字二进制比较,有1则为1
^ 异或运算 数字二进制比较,不同才为1
~ 取反运算,最位变为相反 最高位变为相反

2.三目运算符
格式1: 布尔表达式?表达式1:表达式2;
如果布尔表达式为true执行表达式1,否则执行表达式2
格式2: 数据类型 变量名=布尔表达式?表达式1:表达式2;
此时,三木运算符后面表达式的数据类型必须和前面的数据类型保持一致

3.流程控制
顺序:程序从上到下加载,一行加载完成再去完成另一行
选择结构:if 语句 if....else... 语句 if...else if.....else语句

  if(布尔表达式1){
        语句1;
  }else if(布尔表达式2){
        语句2;
  }else{
        语句3;
  }
  流程:如果布尔表达式1为true,执行语句1,否则往下,如果布尔表达式2为true执行
        语句2,否则执行语句3.
        
  if嵌套
  if(布尔1){
        if(布尔2){
              语句1
        }else{
              语句2
        }
  }else{
       语句3;
  }
  流程:布尔1,2全为true执行语句1,布尔1为true,布尔2为false执行语句2.都为            
        false执行语句3

switch.....case语句
格式:
switch(变量){
case 常量:
语句1;
break;
default:
语句2;
break;
}
流程:如果变量等于常量,就执行语句1,否则执行语句2,break不能少,否则会穿透

循环结构:for while do{}while()
循环结构组成四部分:
1.初始化语句:循环之初,初始化一个变量,只有一次
2.条件判断(结束语句):条件满足就循环,否则就退出
3.循环内容:循环体,有规律
4.迭代语句:对初始化变量进行迭代

for循环:
格式:
for(初始化语句;条件判断语句;迭代语句){
//循环体内容;
}
执行流程:1-->2-->3-->4-->2-->3-->4--->2-->3--->4 直到 2 不满足,结束

​ 1.负责循环变量的初始化

​ 2.判断条件是否满足循环条件,不满足就退出循环

​ 3.执行具体的代码逻辑

​ 4.变量的迭代

​ 初始化语句一定和条件判断表达式紧密结合,

​ 迭代语句和条件表达式也是紧密结合

​ 迭代语句就是对初始化语句中定义的变量迭代的

5 while循环语句

​ 格式:
//1.初始化语句
while(/2.判断条件/){
//3.循环体内容
//4.步进语句
}
执行流程:

​ 执行顺序:1-->2-->3-->4-->2-->3-->4-->2-->3-->4 .... 到2不满足停止

​ 1:负责循环变量初始化

​ 2:判断是否满足循环条件条件,不满足则跳出循环

​ 3:执行具体的语句,实现某一个功能

​ 4:迭代循环变量

do....while循环

​ 格式:

       //1.初始化语句
do{
//3.循环内容
//4.迭代语句
}while(/*2.判断条件*/)

行流程:1-->3-->-->4-->2-->3-->4 知道2不满足就跳出

​ 1:循环变量的初始化

​ 2:判断是否满足循环条件,不满足就跳出循环

​ 3.执行语句,实现功能

​ 4:迭代循环变量

​备注,回无条件执行一次循环体内容,不建议使用,有风险哦。

循环语句区别:

​ for和while区别:

​ 1.控制语句中,所涉及到的循环变量,当for循环结束后,定义到循环变量将不能再被访问到,while循环结束后依然能被访问到。
如果下面需要继续使用循环变量,那就优先使用while循环。因为for循环结束之后循环变量是会从内存中消失的。所以能提高内存使用效率

​ 2.已知循环次次熟就用for循环,循环次数不确定就用while循环

跳出语句break和continue:

break:

​ 终止switch和循环语句,其他的方式使用没有意义

  public static void main(String[] args){
//break
//跳出循环
for(int i=0;i<=12;i++){
	if(i==5){
         break;
    }
    System.outr.println(i);
}


//跳出switch
//季节
	String season="春季";
	switch(season){
        case "春季":
            System.out.println("万物复苏的季节");
            break;
        case "夏季":
            System.out.println("炎热的季节");
            break;
         case "秋季":
            System.out.println("看枫叶的季节");
            break;
         case "冬季":
            System.out.println("万里冰封的季节");
            break;
        default:
            System.out.println("超出三界外,不在五行中!");
            break;     
    }

}

continue:

​ 结束本次循环继续下一次循环
public static void main(String[] args){
//continue
//求1-100内的偶数和·
int sum=0;
for(int i=0;i<=100;i++){
if(i%2==0){
sum+=i;
}else{
continue; //基数跳过不参加累加和
}
}
}

扩展知识点

​ 1.死循环:一直循环,寻寰中的条件永远都是true,永远不会结束

​ 2.循环嵌套:一个循环的循环体是另一个循环,

​ 循环次数=外部循环次数乘以内部循环次数

格式:
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
System.out.println("输出次数:"100);
}
}

执行流程:每一次外部循环,内部循环都完整循环一次

java
public static void main(String[] args){
//使用场景
//打印一个38的长方型
for(int i=0;i<3;i++){
for(int j=0;j<8;j++){
System.out.print("
");
}
}
}

Scanner类和Random类的使用

​ API(Application Programming Interface):应用程序编程接口,提高代码的质量。javaAPI就是一本程序员的字典,JDK提供的说明文档,搜索自己需要的类。

Scanner类:

​ 可以解析基本数据类型和字符串的文本扫描器。

​ 作用:把外部的数据录入到系统内部。

Scanner sc=new Scanner(System.in); System.in:通过键盘实现网系统录入数据
//让系统能够从外部录入一个整数 nextInt()
int num=sc.nextInt();
//让系统能够实现从外部录入一个浮点数
double num1=sc.nextDouble();
//让系统能够实现从外部录入一个字符串
String num2=sc.next();

posted on 2020-11-11 23:10  是涂绍啊  阅读(131)  评论(0编辑  收藏  举报