1.数据类型转换

1.1 自动转换

自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型 。

    public static void main(string[] args) {
      int i = 1;
      byte b = 2;
      //byte x = b + i;会报错,结果是int类型
      int j = b + i;
      System.out.println(j);
 }

解析:byte类型占一个字节,int占四个字节。byte在和int类型运算时会提升为int类型 ,自动补充3个字节,因此计算后的结果还是int类型。
转换规则简单总结

byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

1.2 强制转换
将 0.5 赋值到 int 类型变量会发生什么?产生编译失败,肯定无法赋值

   int i = 0.5; // 错误

想要赋值成功,只有通过强制类型转换,将 double 类型强制转换成 int 类型才能赋值。

强制类型转换:将 取值范围大的类型 强制转换成 取值范围小的类型 。

   int i = (int) 1.5;//结果等于1

1.3 ASCII编码表
这里只需要记住常用的即可,更多可参考Ascll码表

2.运算符

算数运算符省略,注意++、-- 即可,灵活运用
2.1 赋值运算符

= 、+= 、-= 、*= 、、 =、 %=

2.2 比较运算符

== 、< 、> 、<= 、>= 、!=

注意一下,在java中=是赋值的意思,如果用于比较,使用==

2.3 逻辑运算符
逻辑运算符 解释
&& 1. 两边都是true,结果是true 2. 一边是false,结果是false 短路特点:符号左边是false,右边不再运算
|| 1. 两边都是false,结果是false 2. 一边是true,结果是true 短路特点: 符号左边是true,右边不再运算
! 逻辑值取反
2.4 三元运算符
格式:数据类型 变量名 = 布尔类型表达式?结果1:结果2

三元运算符计算方式:
布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。

   public static void main(String[] args) {
     int sex = 1;
     String i = (sex == 1 ? "男":"女");
     System.out.println(i);//男
 }

3.方法

3.1 方法自定义

   public static void methodName() { 
    System.out.println("这是一个方法"); 
}

方法的定义与调用用的比较多,熟练运用即可。

4.判断语句

4.1 判断语句if

    public static void main(String[] args) {
      String a = "男";
      if (a.equals("男")){
          System.out.println("我是男生");
      }
  }

说明:equals用于判断字符内容,==判断的是内存地址,不要弄错。

4.2 判断语句 if...else

   public static void main(String[] args) {
     String a = "女";
     if (a.equals("男")){
         System.out.println("我是男生");
     }else {
         System.out.println("我是女生");
     }
 }

4.3 判断语句 if...else嵌套

    public static void main(String[] args) {
     int x = 5;
     int y ;
     if (x>3){
         y = x *3;
     }else if (x<3){
         y = x + 3;
     }else {
         y = x - 3;
     }
 }

4.4 if语句和三元运算符互换

   public static void main(String[] args) {
     int x = 1;

     if (x == 1){
         System.out.println("我是男生");
     }else {
         System.out.println("我是女生");
     }

     System.out.println(x == 1 ? "我是男生" : "我是女生");
 }

5.选择语句

5.1 选择语句-switch

    public static void main(String[] args){
     int day = 6;
     switch (day){
         case 1:
             System.out.println("星期一");
             break;
         case 2:
             System.out.println("星期二");
             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 0:
             System.out.println("星期日");
             break;
         default:
             System.out.println("输入有误");
     }
 }

5.2 case的穿透性

在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会再判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。

6.循环语句

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。

6.1 循环语句 for

格式:

for(初始化表达式①; 布尔表达式②; 步进表达式④){ 
    循环体③ 
}

for循环执行流程

执行流程

执行顺序:①②③④>②③④>②③④…②不满足为止。

①负责完成循环变量初始化

②负责判断是否满足循环条件,不满足则跳出循环

③具体执行的语句

④循环后,循环条件所涉及变量的变化情况

分别输出5次 helloWorld 进行对比,发现代码量减少许多,并且程序的可读性大大提高,减少代码冗余

    public static void main(String[] args) {
      System.out.println("helloWorld");
      System.out.println("helloWorld");
      System.out.println("helloWorld");
      System.out.println("helloWorld");
      System.out.println("helloWorld");

      System.out.println("--------------------");
      for(int i=0;i<5;i++){
          System.out.println("helloWorld");
      }
  }

循环练习:使用循环,计算1-100之间的偶数和

   public static void main(String[] args) {
   int sum = 0;//统计和
     for (int i = 1;i<=100;i++){
         if (i%2==0){
             sum+=i;
             //System.out.print(i + " ");//验证输出的是否是偶数
         }
     }
     System.out.println(sum);
 }

6.2 for循环练习题

判断101-200之间有多少个素数,并输出所有素数。(素数:只能被1或自身整除)

    public static void main(String[] args) {
     int sum = 0;//统计素数个数
     for (int i=101;i<=200;i++){
         boolean flag = true;//默认为真
         for (int j=2;j<101;j++){
             if (i%j==0){
                 flag = false;//如果为假则说明当前i不为素数
                 sum++;
             }
         }
         if (flag){
             System.out.print(i+" ");
         }
     }
     System.out.println();
     System.out.println("素数的个数为: "+sum);
 }

打印出所有的”水仙花数”,所谓”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

    public static void main(String[] args) {
     for (int i = 100; i < 999; i++) {
         int a = i/100;//百位
         int b = (i - a*100)/10;//十位
         int c = i%10;//百位
         if ( i == a*a*a + b*b*b + c*c*c){
             System.out.println(i);
         }
     }
 }

注:答案不唯一,仅提供一种解决思路。

6.3 循环语句 while

格式:

初始化表达式① 
while(布尔表达式②){ 
    循环体③ 步进表达式④ 
}

while语句执行流程

执行流程

执行顺序:①②③④>②③④>②③④…②不满足为止。

①负责完成循环变量初始化。

②负责判断是否满足循环条件,不满足则跳出循环。

③具体执行的语句。

④循环后,循环变量的变化情况。

while循环输出10次HelloWorld

    public static void main(String[] args) {
      int i = 0;
      while (i<10){
          System.out.println("HelloWorld "+i);
          i++;
      }
  }

while循环计算1-100之间的和

   public static void main(String[] args) {
     int sum = 0;//统计和
     int i = 1;//循环次数
     while (i<=100){
         sum+=i;
         i++;
     }
     System.out.println(sum);
 }

6.4 do…while

格式:

do...while执行流程
初始化表达式① 
    do{ 
        循环体③ 
        步进表达式④ 
}while(布尔表达式②);

特点: do…while循环的特点:无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的 循环具有一定的风险性,因此初学者不建议使用do…while循环。例:输出10次HelloWorld

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

6.5 循环语句的区别

for和while的小区别:

控制条件语句所控制的变量,也就是在for循环条件声明的变量,在for循环结束后,就不能再被访问到了。而while循环结束还可以继续使用,如果想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。 在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。

6.6 跳出语句

break:终止switch或者循环

continue:结束本次循环,继续下一次的循环

7.循环扩展

7.1死循环

也就是循环中的条件永远为true,死循环的是永不结束的循环。例如:while(true){}。

最后修改:2020 年 09 月 15 日 04 : 20 PM
别点我,千万别点我!