第二章

本文介绍了Java中的基本数据类型转换规则,包括从小到大的自动转换和大到小的强制转换,并展示了容量不同类型的变量在运算过程中的处理方式。此外,还详细讲解了算术、比较、赋值、逻辑和位运算符的用法,以及条件运算符的三目表达式。文章最后提到了控制台输入及使用Scanner类,以及循环语句在记账应用中的实现,包括循环嵌套示例——九九乘法表。
摘要由CSDN通过智能技术生成

1基本数据类型转换

由小到大:byte--short--char--int--long--float--double

1字节 2 2 4 8 4 8

public class Demo1 {
    public static void main(String[] args) {
//       容量小转容量大,则直接进行转换
        byte a=127;
        int b=a;
        long c=b;
        float d=c;
        System.out.println(d);
//       容量大转容量小,加强制转换符,但可能出现精度降低或溢出
        float x=10.5f;
        long y=(long)x;
        System.out.println(y);
          double gg=a+x+5.5;
        char z  = 'a'; //97  char也是可以参与转换的
        int zc = z;
​
        byte aa = 10;
        byte bb = 10;
        byte cc = (byte)(aa+bb);//byte short,char 在混合运算时,都是上升为int类型
​
        double dd   = x  + a + 5.5; //混合运算时,小类型默认都会转为最大的类型
​
    }
}

2运算符

public class Demo2 {
/*算术运算符
+:加法运算;字符串连接
—:数值减法
*:数值乘法
/:数值除法
%:取余,数值运算
++:自增
--:自减
 */
public static void main(String[] args) {
    /*int  a=10;
    int b=1;
//    单引号表示字符
    char c='a';
//    双引号表示字符串
    String d="d";
    System.out.println(a+b);
    System.out.println(a+c);
    System.out.println(a+d);
    */
​
    int m=5;
    System.out.println(++m);
    System.out.println(m++);
​
}
}
​
/*比较运算符
    <,>,<=,>=,==,!=
     !=,==可以用于引用类型之间的比较*/

赋值运算符

+=: a+=5 //a=a+5 可以隐式的进行数据类型转换

 short a=10;
        a+=5;
        a=a+5;//short+5(int),类型不匹配

逻辑运算符: 符号的左右是逻辑值 & -- 逻辑与 &&-- 逻辑与(短路与)

& -- 逻辑与 所有的表达式都返回true,结果就是true, 其中有一个为false,结果就是false 逻辑与第一个表达式结果为false时,后面的表达式仍会执行

&&-- 逻辑与(短路与)所有的表达式都返回true,结果就是true,其中有一个为false,结果就是false && 第一个表达式为false 后面的表达式就不会执行

public class Demo5 {
    /*逻辑运算符
       &,(逻辑与)
       &&(短路与)
       |   -- 逻辑或
       ||  -- 逻辑或(短路或)
       !---逻辑非
       ^ -- 逻辑异或*/
        /*public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int c = 8;
        System.out.println(a>b & b<c);// true & true = true
        System.out.println(a>b & b>c);// true & false =false
        System.out.println(a<b & ++b>c);// false & false =false
        System.out.println(b);//6
​
        System.out.println(a>b && b<c);// true && true = true
        System.out.println(a>b && b>c);// true && false =false
        System.out.println(a<b &&(++b>c));// false && false =false
        System.out.println(b);//6
​
    }*/
​
​
​
    /*public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int c = 8;
        System.out.println(a>b | b<c);// true | true = true
        System.out.println(a<b | b>c);// false | false =false
        System.out.println(a>b | ++b>c);// true | false true
        System.out.println(b);//6
​
        System.out.println(a>b || b<c);// true || true = true
        System.out.println(a<b || b>c);// false || false =false
        System.out.println(a>b || ++b>c);// true || false true
        System.out.println(b);//6
​
    }*/
​
​
   /* public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int c = 8;
        System.out.println(!(a>b));
    }*/
​
​
    /*public static void main(String[] args) {
        int a = 10;
        int b = 5;
        int c = 8;
        System.out.println(a>b ^ b<c); //true ^ true = false
        System.out.println(a>b ^ b>c); //true ^ false = true
        System.out.println(a<b ^ b>c); //false ^ false = false
    }
*/
}

条件运算符

三目运算符

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

位运算

位运算: 指的是对数值的二进制位进行运算 << 左移 >> 右移 >>> 无符号右移 & | ^ ~

public class Demo6 {
    public static void main(String[] args) {
        int a = 4;
        System.out.println(a << 1);// 0000 0100 左移1位 0000 1000  相当于乘2
        System.out.println(a >> 1);// 0000 0100 右移一位 0000 0010 相当于除2
        
        int  b = -6;
        System.out.println(b >> 1);//>> 1000 00110   1000 00011 带符号的移位 负数补1 正数补0
        System.out.println(b >>> 1);//>>> 1000 0110   1000 0011  无符号的移位 无论正负都补0
    }
    }
​

3.控制台输入

import java.util.Scanner;
​
public class ScannerDemo{
    public static void main(String[] args) {
//通过nwe关键字创建出一个Scanner类的实例(对象),可以直接使用实例
   Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名");
        String username=scanner.next();//next(),程序会阻塞,等待用户输入数据,输入后按回车继续执行
        System.out.println(username);
​
        System.out.println("请输入年龄");
        int age=scanner.nextInt();
        System.out.println(age);
    }
}

4记账循环语句

public class JzDemo {
    public static void main(String[] args) {
        int money  =1000;
        String info ="";
​
        info +="支出:物业费"+100+"\n";
​
        info +="收入:工资"+500+"\n";
        System.out.println(info);
    }
}
import java.util.Scanner;

public class JzDemo {

        public static void main(String[] args) {
            int money  = 10000;
            String info = "";//记录支出和收入

            out:while(true){
                System.out.println("家庭收支记账软件");
                System.out.println("1.收支明细");
                System.out.println("2.登记收入");
                System.out.println("3.登记支出");
                System.out.println("4.退出");
                System.out.println("请选择1-4选项操作");
               Scanner scanner =new Scanner(System.in);
                int item = scanner.nextInt();
                switch (item){
                    case 1:
                        System.out.println(info);
                        break;
                    case 2:
                        System.out.println("输入收入金额");
                        int shuru = scanner.nextInt();
                        money += shuru;
                        System.out.println("输入说明");
                        String desc = scanner.next();
                        info +="收入:"+desc+" "+shuru+"\n";
                        break;
                    case 3:
                        System.out.println("输入支出金额");
                        int zhichu = scanner.nextInt();
                        money -= zhichu;
                        System.out.println("输入说明");
                        String desc1 = scanner.next();
                        info +="支出:"+desc1+" "+zhichu+"\n";
                        break;
                    case 4: break out;
                    default:
                        System.out.println("选项不匹配");
                }
            }
        }
}

5循环嵌套九九乘法表

public class PrintStream {
    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+"="+(i*j)+" ");
            }
            System.out.println();
        }
    }
}

结束外层循环

如果需要从多层循环跳出,则需要使用标签,定义一个标签,如label, 然后在需要跳出的地方,用break label就可以

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值