一、数据类型的转换

Java是强类型的语言,数据的类型和保存数据的变量的类型必须一致。

一般情况下,小的数据可以放在大的变量中,JVM可以实现自动类型转换。 如果要把大的数据放进小的变量中,需要手动类型转换: 变量 = (变量类型)值;

public class TestConvert{
public static void main(String[] args){
//10 默认是int类型,把int类型的数据10放到byte类型的容器中了
int a=300; //
byte b=(byte)a; //把a 里面的值放到b容器中
System.out.println(b);
//自动把byte类型转成int类型
byte b1=10;
int b2=b1;
//把long类型转成Int类型
long l =10;
int l1=(int)l;
//把short类型强转成 byte类型
short s=20;
byte b4=(byte)s;

double d=10.6;
int mm=(int)d;
System.out.println(mm);

1.注意: 手动类型转换有可能会造成数据丢失! 大整型  小整型:抛弃高字节,保留低字节 浮点  整型:抛弃小数部分,保留整数部分 双精度浮点  单精度浮点:损失数据精度

2.不是所有类型都能手动类型转换。 boolean类型不能和其它基本类型互转

自动类型提升:两个数值参与运算,会发生自动类型提升。

规则: 参与运算的两个数值: 如果有double类型,运算结果为double类型,

否则: 如果有float类型,运算结果为float类型,

否则: 如果有long类型,运算结果为long类型,  

否则: 运算结果为int类型。

//自动类型提升
   byte n=10;
   byte n1=20;
   int n2=n+n1;
   //byte n2=(byte)(n+n1);
//  System.out.println(n2);

  short s1=10;
  short s2=20;
  int s3=s1+s2;
  double dd=10.1;
  float ff=10.2f;
  long mm1=20l;
//  System.out.println(ff+mm1);
二、运算符

数学运算符

 +: 数学加法   -: 数学减法   *: 数学乘法   /: 数学除法   %: 求模(除法求余数)

例:

package com.studentwork;

import java.util.Scanner;

public class NianF {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int i=scanner.nextInt();

        if (i%400==0){
            System.out.println("闰年");
        }else if (i%100==0){
            System.out.println("平年");
        }else if (i%4==0){
            System.out.println("闰年");
        }else {
            System.out.println("平年");
        }


    }
}

 

赋值运算符

 =: 把右边的值赋给左边的变量

注意: 左边必须是变量,不能是表达式或常数。

  1. +=、-=、*=、/=、%=、……
  2. ++: 自增运算符
  3. --: 自减运算符

此类运算符不会发生自动类型提升

布尔运算符

==: 判断两边的值是否相等,相等则值为true,否则值为false

<、<=、>、>=、!=: 判断不等式是否成立

java 分支语句_java

 

 

 java 分支语句_类型转换_02

 

 

 java 分支语句_数据_03

 

 

 java 分支语句_类型转换_04

 

 

 

&、|既是位运算符,也是逻辑运算符,作用和&&、||相同。

&&、||是短路运算符

&、|是非短路运算符

短路运算:当一个子表达式的值能决定整个表达式的值时,后面的所有子表达式的值不再计算。

三元运算符

a ? b : c

规则:a为布尔表达式,b和c为同一类型的表达式或值,当a为true时,整个表达式的值为b的值,否则为c的值。

使用运算符连接的式子叫做表达式。

表达式的值的类型就是表达式的类型。

表达式可以嵌套。

所有运算可以使用圆括号提升运算优先级。

例:

package com.studentwork;

import java.util.Scanner;

public class SanY {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int a=scanner.nextInt();
        int b=scanner.nextInt();
        int c=scanner.nextInt();

        System.out.println((a>b?a:b)>c?(a>b?a:b):c);
    }
}

 

三、顺序语句

  在Java中,使用分号表示一个语句结束

顺序语句:

赋值语句:给变量赋值

输入语句:把数据传入到Java虚拟机内部

输出语句:把Java虚拟机内部的数据传出

函数调用语句:执行一段特定的代码

Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
double d = scanner.nextDouble();
String s1 = scanner.next();
String s2 = scanner.nextLine();
scanner.close();

扫描器,输入数值,打印输出数值

例:输入一个偶数,哥德巴赫猜想

package com.mycode;

import java.util.Scanner;

public class Bdde {
    public static void main(String[] args) {
        int a,b,c;
        Scanner scanner=new Scanner(System.in);
        int d=scanner.nextInt();

        if (d%2==0){
            int count = 0;
            a=2;
            b=2;
            for(  ; a <d;a++) {
                boolean flag = true;                                //假设是质数
                for(int j = 2; j <= (int)Math.sqrt(a); j++) {       //Math.squart()取平方根
                    if(a % j == 0) {
                        flag = false;                               //改为不是质数
                        break;
                    }
                }
                if(flag) {
                    count++;
                    b=d-a;
                    for(; b<d;b++) {
                        for(int j = 2; j <= (int)Math.sqrt(b); j++) {
                            if(b % j == 0) {
                                flag = false;
                                break;
                            }
                        }
                        if(flag) {
                            count++;
                            if (d == a+b){
                                System.out.println(d+"="+a+"+"+b);
                            }
                        }

                    }
                }

            }
        }else {
            System.out.println("请输入一个偶数");
        }






    }
}
四、分支语句

分支语句: 当某个条件满足时才执行某个代码块。

if语句:

在一个if语句中 if子句:有且仅有1个 else if子句:可以有0~n个 else子句:可以有0~1个

 

if ( 布尔表达式 ) {……}

// 第一个分支 else if( 布尔表达式 ) {……}

// 第二个分支 else if( 布尔表达式 ) {……} /

/ 第三个分支 else {……} // 第四个分支

 

 

switch语句:

switch语句表达式的类型: byte、short、int、char、java.lang.String、枚举类型 不能是boolean类型! case子句后面值的类型: 必须是常量或枚举值 不能是表达式!

 

可以有多个case子句

最多有一个default子句

case和default子句的顺序无关紧要

 

switch( 表达式 ) {

case 值1: ……

case 值2: ……

default: …… }

例:

package com.studentwork;

import java.util.Scanner;

public class ChengJ {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int i=scanner.nextInt();

if (i==100){
System.out.println("优");
}else {
int a=i/10;
switch (a){
case 9:
System.out.println("优");
break;
case 8:
System.out.println("良");
break;
case 7:
System.out.println("中");
break;
case 6:
System.out.println("及格");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("不及格");
break;
default:
System.out.println("错误");
}

}


}
}