Java从头开始-3

第二章笔记-2

基本数据类型转换

java中有8种基本数据类型,除了布尔类型外其余7种之间可以相互转换

默认转换

默认转化:容量小的类型默认转化为容量大的byte,short,char<int <long<float<double直接转化,因为容量大的完全装的下容量小的

强制类型转化

强制类型转化:容量大的转化为容量小的

问题:1.溢出 2.精度降低

实例:

 public static void main(String[] args) {
      //默认转化:容量小的类型默认转化为容量大的   
        byte a = 20;
        short b = a;
        int c = b ;
        long d =c ;
        float f = d;
        double g = f;

      	//强制类型转化:容量大的转化为容量小的
        
		//数据类型不匹配,报错
        /*int x = 10;
        byte y =x;*/
     
        int x = 10;
        byte y = (byte) x;
     
        //注意:混合运算时,小容量会自动转化为大容量计算
        float z = 12.3f;
        int m =(int) (a+x+z);
        int m1=(int) (z)+x+a;
        System.out.println(d);
        System.out.println(g);
        System.out.println(m);
        System.out.println(m1);

    }   
     

运行结果:

在这里插入图片描述

算术运算符

+,-,*,/,%,++,–

“+”可以表示一个正数,加法运算和字符串的连接符

+,-,*,/,%只能进行算术运算,数值与数值之间的运算

注意++a和a++,–a和a–的区别

实例1:

public static void main(String[] args) {
        int a=+5;
        int b=3;
        System.out.println(a+b);

        String s="abc";
        String s1="abcd";
        System.out.println(b+s);
        System.out.println(s+s1);
        int x=10;
        x++;
        ++x;
        System.out.println(x);
    }

运行结果:

在这里插入图片描述

实例2:

		public static void main(String[] args) {       
		int i1 = 10,i2 = 20;
        int i = i1++;
        System.out.print("i="+i);
        System.out.println("i1="+i1);
        i = ++i1;
        System.out.print("i="+i);
        System.out.println("i1="+i1);

        i = i2--;
        System.out.print("i="+i);
        System.out.println("i2="+i2);
        i = --i2;
        System.out.print("i="+i);
        System.out.println("i2="+i2);

    }

运行结果:

在这里插入图片描述

比较运算符

比较运算==,!=,<,>,<=,>=

==,!=可进行数值与数值,布尔与布尔,引用类型与引用类型之间的比较。

<,>,<=,>=可进行数值与数值间的比较。

比较运算符的结果都是boolean型,也就是要么是true,要么是false。
注意:比较运算符“==”不能误写成“=” 。

实例:

public static void main(String[] args) {
                int a=5;
                int b=10;
                int c=15;
                System.out.println(a>b);
                System.out.println(a==b);
                System.out.println(a!=b);
                System.out.println(a<b);

                boolean d=true;
                boolean e=false;
                System.out.println(d==e);
                System.out.println(d!=e);

                String s="abc";
                String s1="abd";
                System.out.println(s==s1);
                System.out.println(s!=s1);
            }

在这里插入图片描述

逻辑运算符

逻辑运算符:
&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或

注意:“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。

异或( ^ ):当左右都为true时,结果为false。

实例:

public static void main(String[] args) {
        int a=15;
        int b=10;
        int c=5;
    	//逻辑与
        /*System.out.println(a>b & b>c);
        //System.out.println(a<b & b>c);
        //检验逻辑与左边为真时右边是否会参与运算
        System.out.println(a<b & ++b>c);
        System.out.println(b);*/

    	//短路与
        System.out.println(a>b &&b>c);
        //System.out.println(a<b && b>c);
    	//检验短路与左边为真时右边是否会参与运算
        System.out.println(a<b && ++b>c);
        System.out.println(b);
        /* 异或运算^
            非运算!
        */
        boolean m=true;
        boolean n=false;
        System.out.println(!m);
        System.out.println(m^n);
    }


运行结果:

在这里插入图片描述

赋值运算符

符号:=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。支持连续赋值。
扩展赋值运算符: +=, -=, *=, /=, %=

public static void main(String[] args) {
        int i=10;
        i=i+5;
       short x=10;
      // x=x+2;由于数据类型的不同,编译器会报错
       	x+=2;

        boolean b1 = false;//区分好==和=的区别。
        if(b1==true){
            System.out.println("结果为真");
        }else{
            System.out.println("结果为假");
        }

        boolean b2 = false;
        if(b2=true){
            System.out.println("结果为真");
        }else{
            System.out.println("结果为假");
        }

        int y = 1;
        y*= 0.1;
        System.out.println(y);
        y++;
        System.out.println(y);

        int y1 = 1;
        y1++;
        y1*= 0.1;
        System.out.println(y1);
}

运行结果:

在这里插入图片描述

条件运算符

(条件表达式)? 表达式1:表达式2;
为true,运算后的结果是表达式1;为false,运算后的结果是表达式2;
表达式1和表达式2为同种类型

 		public static void main(String[] args) {
		int a=50;
        String s=(a>60)? "及格":"不及格";
        System.out.println(s);
    }

运行结果:

在这里插入图片描述

位运算符

左移(<<),右移( >>) ,不带符号位右移 >>> ,与( &) , 或(|) ,非( ~) ,取反( ^)。

public static void main(String[] args) {
        int a=2;
        int b=7;
        System.out.println(a<<2);
        System.out.println(-8>>>2);
        System.out.println(8>>2);
        System.out.println(a&b);
        System.out.println(a|b);
        System.out.println(a^b);
        System.out.println(~a);
    }

运行结果:

在这里插入图片描述

表达式的运算顺序:

在这里插入图片描述

控制台输入

在使用Scanner对象时,需要在文件头带入 java.util.Scanner;
写法为: import java.util.Scanner;

在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。

public static void main(String[] args) {
    //输入一个数
    //创建Scanner对象,接受从控制台输入
        Scanner s=new Scanner(System.in);
        System.out.println("请输入一个数字:");
    //接受int类型
        int num=s.nextInt();
    //输出结果
        System.out.println(num);
    
    
    //输入一个字符串
	//创建Scanner对象,接受从控制台输入
        Scanner name=new Scanner(System.in);
        System.out.println("请输入姓名:");
    //接受String类型
        String s1=name.next();
    //输出结果
        System.out.println(s1);
    }

运行结果:

在这里插入图片描述

控制语句

条件语句:根据不同条件,执行不同语句。
if
if … else
if … else if
if … else if … else if … else
switch
循环语句:重复执行某些动作
for
while
do … while;

实例:

public class SwitchDemo {
    /*
   控制语句
   if语句
   if...else语句
   if...else if...else if ...else语句
   switch:多分支选择语句,根据表达式的值来执行多个操作中的一个
   switch中的表达式可以是byte,short,int,char,枚举类型等,JDK7以后,可以使用String
     case语句后面只能使用常量表达式
     case:后面的值不能重复
     */
    public static void main(String[] args) {
        int day=1;
        switch (day){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 0:
                System.out.println("星期天");
                break;
            default:
                System.out.println("不合法的日期");
                }
        }
        

运行结果:

在这里插入图片描述

循环

循环语句功能:在某些条件满足的情况下,反复执行特定代码的功能。
循环语句的四个组成部分:循环变量的初始化,循环条件部分 ,循环体部分 ,循环变量的更新。

循环语句分类:
while 循环
do/while 循环
for 循环

while语句

实例1:

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

运行结果:

在这里插入图片描述

实例2:

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

运行结果:

在这里插入图片描述

实例3:

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

运行结果:

在这里插入图片描述

实例4:

 public static void main(String[] args) {
      int i=0;
        do{
            Scanner s=new Scanner(System.in);
            System.out.println("请输入一个数字");
            i=s.nextInt();
        }while(i>5);
      System.out.println("你当前输入的数字小于等于5");

运行结果:

在这里插入图片描述

实例5:死循环

  public static void main(String[] args) {
 	while(true){
                System.out.println("死循环");
            }

运行结果:

在这里插入图片描述

for循环

实例1:

  public static void main(String[] args) {
       for(int i=0;i<5;i++){
            System.out.println(i);
        }
  }

运行结果:

在这里插入图片描述

实例2:

  public static void main(String[] args) {
      int j=0;
       for( ;j<5;j++){
           System.out.println(j);
       }
  }

运行结果:

在这里插入图片描述

实例3:

  public static void main(String[] args) {
       int k=0;
           for( ; k<5; ){
               System.out.println(k);
               k++;
           }
  }

运行结果:

在这里插入图片描述

实例4:

  public static void main(String[] args) {
       for(int i=0;i<3;i++){
           for(int j=0;j<5;j++){
               System.out.print("*");
           }
           System.out.println();
       }
  }

运行结果:

在这里插入图片描述

实例5:

  public static void main(String[] args) {
      for (int i=1;i<=9;i++){
            for(int j=1;j<=i;j++){
                System.out.print(j+"*"+i+"="+j*i+"\t");
            }
            System.out.println();
        }
      }

运行结果:

在这里插入图片描述

break语句

实例:

public static void main(String[] args) {
        int a = 4;
        for (int i = 1; i <= 10; i++) {
            //当i等于a时,退出循环
            if (i == a){
                break;
            }
            System.out.println(" i= " + i);
        }
    }

运行结果:

在这里插入图片描述

continue语句:

实例:

public static void main(String[] args) {
       int b = 4;
       for (int i = 1; i <= 5; i++) {
           //当i等于b时,跳过当次循环
           if (i ==b){
               continue;
           }
           System.out.println("i = " + i);
       }

运行结果:

在这里插入图片描述

方法

Java的方法类似于其它语言的函数,方法是解决一类问题的步骤的有序组合,方法包含于类或对象中.
方法在程序中被创建,声明格式:
[访问权限修饰符 修饰符…] [返回值类型] 方法名(形式参数类型 参数名){
Java语句;… … …
[return 返回值;]
}

修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
形式参数: 在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。
返回值:方法在执行完毕后返还给调用它的环境的数据。
返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。

Java语言中使用下述形式调用方法:对象名.方法名

return语句
return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。
有两种格式:
return 表达式; //将表达式的值返回
return; //不返回任何值,当方法说明中用void声明无返回值时, 可以使用这种格式,此类return语句有时可省略

实例1:

public static void main(String[] args) {
     MethedDemo s = new MethedDemo();
        Scanner input=new Scanner(System.in);
        int x=input.nextInt();
        int y=input.nextInt();
        int z=input.nextInt();
        System.out.println( s.getMax(x,y,z));
    }

    public int getMax(int x,int y,int z){
        int max;
        return ( max=(x>y)? x:y)>z ? max :z;
    }


运行结果:

在这里插入图片描述

实例2:

public static void main(String[] args) {
        show(5);
   }
   public static void show (int a){
       for (int i = 0; i < a; i++) {
           for (int j = 0; j < a; j++) {
               System.out.print("*");
           }
           System.out.println();
       }
   } 

运行结果:

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值