【JavaSE】P1~P32 进制,字节,Java代码规范,常量,变量,运算符

目录

  • IDEA常用快键键和快捷用法
  • 一、需要复习的重难点概念
  • 1 进制、字节、DOS操作命令语句
    • 进制及转化
    • 字节
    • DOS系统命令提示符
  • 2 Java 常用代码规范
  • 3 常量及常量的打印
  • 4 变量
    • 数据类型及取值范围
    • 变量的概念和使用
    • 数据类型转换
    • ASCII码表(128种)
    • 基本数据类型极其数学计算
  • 5 运算符
    • 自增自减,--,++
    • 赋值运算符
    • 逻辑运算符
    • 三目运算符
    • 编译器优化
  • 二、编程计算练习
  • 1、 把234(DEC)转为BIN
  • 2、把0011010101100(BIN)转为DEC十进制
  • 3、 字节转换
    • 买一个100Mbps的宽带,问下载速度最快多少
  • 4、DOS操作系统下指令
    • 按照给出指令操作 打开cmd,切换盘符到D盘,进入一个文件夹,打印当前目录下文件,选择一个进入时只打前半部分名称使用补全快捷键,返回上级文件夹,清屏,返回根目录,退出
  • 5、判断数据类型定义,分析错误并改正
  • 6、判断对错,并改正
  • 7、判断程序运行结果

IDEA常用快键键和快捷用法

  • idea
    shift + F6 鼠标选中原变量名,批量替换变量名
    Alt +insert 打开Generate,快速生成构造器和Getter,Setter。或者Code ->Generate 选择
    在这里插入图片描述
    在这里插入图片描述

Alt + 回车 Enter 选中在使用的类名,对已经写了用的类,自动导包
fori 后 回车enter 快速生成循环参数i
在这里插入图片描述

  • array.fori 快速生成循环遍历数组array
    变量.fori快速生成for循环,i从0++到变量大小
    同理:list.fori 快速生成遍历ArrayList的for循环(ArrayList list)
  • 自动生成接收返回值的变量: 选择调用有返回值的方法,alt + enter选local那一项,定义变量名后enter确定
    在这里插入图片描述
    在这里插入图片描述

一、需要复习的重难点概念

1 进制、字节、DOS操作命令语句

进制及转化

  • HEX 16进制 DEC 10进制 OCT 进制 BIN 2进制

  • 10进制转2进制:
    辗转相除法,10进制数每次除2,记录余数,直到10进制数除到0,余数反制即为对应2进制数
    在这里插入图片描述

  • 2进制转10进制:
    从最低位即2进制最右开始,每一位对应的10进制值分别为 2^0, 2^1, 2^2……依次类推。每位的1或0乘以该位10进制值,全部加起来得到总体10进制值。
    在这里插入图片描述

字节

位(bit):一个数字0或一个1,代表一位
字节(Byte):每逢8位是一个字节,这是数据存储的最小单位。
1 Byte = 8bit
比方说,办了一个带宽100Mbps的宽带,下载东西时速度应该为100/8 ≈ 12.5 MB/s。因为单位一个是Byte,一个是bit

1KB = 1024Byte = 2^10 Byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB
1ZB = 1024EB

DOS系统命令提示符

MS-DOS(Microsoft Disk Operating System) 非图形操作系统
正斜杠/ 反斜杠
Win+R 输入cmd打开,>前为当前所在文件夹位置
1、切换盘符 盘符名: 大小写都可 D: c:
2、进入文件夹 cd 文件夹名 多级进入cd ……\……\
3、Tab补全字符or多个备选项则切换,例如要进入哪个文件夹时,cd li 按下Tab
4、cd.. 返回上级文件夹
5、cd \ 直接返回D盘根路径
6、dir 打印当前目录内容,文件夹为<DIR> ,文件显示大小
7、cls 清屏
8、exit 退出

2 Java 常用代码规范

参考 Java基础——java代码规范详细版————————————————
版权声明:本文为CSDN博主「ddm01」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34869143/article/details/94554253(https://blog.csdn.net/qq_34869143/article/details/94554253)

  1. 标识符
  • 标识符硬命名规则:
    1.可用26个英文字母大小写 0到9数字 $ _
    2.不能以数字开头
    3.不能是关键字
  • 软规则:
    1.类名,大驼峰,即每个单词首字母大写。 MyNote
    2.变量名,方法名,除了第一个单词后续单词首字母大写。小驼峰 myCode
  1. 包名
    使用小写字母如 com.xxx.settlment,不要 com.xxx.Settlement
    单词间不要用字符隔开,比如 com.xxx.settlment.jsfutil,而不要com.xxx.settlement.jsf_util
  2. 后缀名
后缀名意义举例
Impl这个类是一个实现类,而不是接口PaymentOrderServiceImpl
Inter这个类是一个接口LifeCycleInter
Dao这个类封装了数据访问方法PaymentOrderDao
Listener响应某种事件的类PaymentSuccessListener
Wrapper这是一个包装类,为了给某个类提供没有的能力SelectableOrderListWrapper
Bean这是一个POJOMenuStateBean
  1. 方法名
    首字母小写,如 addOrder() 不要 AddOrder()
    动词在前,如 addOrder(),不要orderAdd()
    动词前缀往往表达特定的含义,如下表:
前缀名意义举例
create创建createOrder()
delete删除deleteOrder()
add创建,暗示新创建的对象属于某个集合addPaidOrder()
remove删除removeOrder()
init或则initialize初始化,暗示会做些诸如获取资源等特殊动作initializeObjectPool
destroy销毁,暗示会做些诸如释放资源的特殊动作destroyObjectPool
open打开openConnection()
close关闭closeConnection()
read读取readUserName()
write写入writeUserName()
get获得getName()
set设置setName()
copy复制copyCustomerList()
modity修改modifyActualTotalAmount()
calculate数值计算calculateCommission()
do执行某个过程或流程doOrderCancelJob()
start开始startOrderProcessing()
stop结束stopOrderProcessing()
send发送某个消息或事件sendOrderPaidMessage()
receive接受消息或时间receiveOrderPaidMessgae()
find查找对象findNewSupplier()
  1. 静态常量
    全大写用下划线分割,如
    public static find String ORDER_PAID_EVENT = “ORDER_PAID_EVENT”;
  2. 枚举
    全大写,用下划线分割,如

public enum Events {
ORDER_PAID,
ORDER_CREATED

}

  1. 二元三元运算符两边用一个空格隔开
b - d = e;
return a == b ? 1 : 0;
  1. 逗号语句后如不换行,紧跟一个空格
    如下:
call(a, b, c);

不能如下:

call(a,b,c);

3 常量及常量的打印

  1. 常量概念和分类
    常量:程序运行齐健,固定不变的
    字符串:“”引起来的
    整数:100,250
    浮点数:2.5 , -3.14, 0.0
    字符:‘A’引起来的,不可以为空,也不能是两个字符,必须有且仅有一个字符
    布尔:只有true 和false两种取值
    空常量: null
  2. 常量打印
 		System.out.println("ABC");
        System.out.println("");//字符串可以为空
        System.out.println("0");
        System.out.println(-500);
        System.out.println(30);
        System.out.println(3.14);
        System.out.println(-2.5);
//× 错误写法 System.out.ptintln('');
//× 错误写法 System.out.ptintln(‘AS’);
 		System.out.println('s');
        System.out.println(true);

  • ?疑问,char怎么打印为他的码值而非字符
   		System.out.println(num3);//%
        System.out.println(num3 + 0);//37

因为char/byte/short类型计算时会提升为int

4 变量

数据类型及取值范围

  1. 基本数据类型
    4类8种
  • 整数型:byte,short,int(默认),long(数后带L或l推荐大写)
  • 浮点型:double(默认),float(后带F或f推荐大写)
  • 字符型:char
  • 布尔型:boolean
  1. 引用数据类型
    字符串,数组,类,接口
  2. 数据所占内存和取值范围
  • 字节即Byte。1Byte = 8 bit位,即8个0或1
  • 默认指例如一个数23,默认就是int类型。一个小数2.3默认就是double类型
  • 默认值指该变量未赋值时默认存储的值
  • E 表科学计数法,1.4013E - 45 意思是1.4013 * 10^ - 45
数据类型关键字内存占用取值范围
字节型byte1个字节-128~127即 -2^7 ~ 2^7 -1
短整型short2个字节-32768~32767即 -2^15 ~ 2^15-1
整型int(默认)4个字节-2^31 ~ 2^31
长整型long(赋值数后带L或l)8个字节-2^63 ~ 2^ 63 - 1
单精度浮点数float(赋值数后带F或f)4个字节1.4013E - 45 ~ 3.4028 E - 38
双精度浮点数double(默认)8个字节4.9E-324 ~ 1.7977E + 308
字符型char2个字节ASCII码 0~65535
  • 根据数据所占字节,计算取值范围。一个字节Byte是8个bit,首位做正负符号标识,byte的取值范围为什么是-2^7~2^7-1
    主要因为补码 0000 0000 = 0 ;补码1000 0000 看似为 -0实际 = -2^7是规定

    因为内部存储的是补码,正数的原码=反码=补码;最高位为符号位=0。负数反码=原码除符号位外全取反,补码=反码+1;最高位为符号位=1。

    8个bit位的情况下,最大正数原码反码补码:0111 1111= 2^7-1最小负数原码 :1000 0000 反码:1111 1111 补码 1000 0000 相当于最高位即代表符号位又代表值所以=-2^7

  • 字符串不是基本类型,而是引用类型

  • 浮点可能只是一个近似值,并非精确值

  • 数据范围与字节数不一定相关,比如float和long,long8字节 的最大值2^63 ≈ 9.223E+18。float最大值数量级+38,远超。因为使用了科学计数法

  • 浮点数默认double ,用float加后缀F或f。整型默认int用long加L或l(推荐用大写)

变量的概念和使用

  1. 变量概念
    程序运行期间,内容可以发生改变的量。
数据类型 变量名称;//创建了一个变量
变量名称 = 数据值;//赋值,将右数据值赋值交给左变量
数据类型 变量名称 = 数据值;
  1. 变量的使用
int num1;
num1 = 10;
num1 = 20;
int num2 = 25;

右侧数值范围不能超过左侧数据类型的取值范围,不然错

long num6 = 3000000L;//大写L更明确,必须加L
float num7 = 2.5F;//也是必须加F

错 因为var1,num没有初始化就不能使用 ×

boolean var1;
//boolean var2 = var1;
int num;
//System.out.println(num);

  1. 变量的注意事项
  • 创建多个变量,变量间名称不可以重复
  • float和long,数据值字母后缀F和L
  • short,byte 右数赋值不可太大会超出
  • 没赋值的变量,不能直接使用。例如打印,作为数据值赋值
  • 变量使用不能超过作用域范围,[作用域]从定义变量的一行开始,一直到所属的大括号结束为止,创建变量之前不能使用
  • 可以通过一个语句创建多个变量,一般不推荐。数据类型统一的情况可用
int a, b, c; a = 10; b = 20; c = 40;
int x = 100, y = 20, z = 300;

数据类型转换

  1. 自动类型转换(隐式)
    自动:数据范围从小到大
    long num1 = 100;//左右不一样,自动转换
    double num2 = 2.5F;
    float num3 = 30L;//float范围更大
  2. 强制类型转换(显式)
    格式 范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据;
    int num = (int)100L;//从long强转为int,且100没超int范围大小
    // int num == 100L;错
  3. 数据类型转换注意事项
  • 强转不推荐,有可能精度损失,数据溢出
		//int num4 = (int)6000000000;
        int num5 = (int)6000000000L;
        System.out.println(num5);//1705032704
  • 60亿超出int最大范围,int最大21亿左右。所以数据值一定要带L,为long类型。强转后,结果不报错但为1705032704,因为数据溢出
  • int num = (int)3.5;//3精度损失。
    在这里插入图片描述
  • byte/short/char这三种类型都可以发生数学运算(即+,-,*,/,%)
		char zifu1 = 's';
        System.out.println(zifu1 + 1);//116
        char zifu2 = '我';
        System.out.println(zifu2 - zifu1);//24990
  • byte/short/char运算时,都会被首先提升成int,再计算
 		byte num6 = 2;
        byte num7 = 34;
        //byte result1 = num6 + num7;错
        //因为num6 + num7运算时提升为int,结果也是int
        int result2 = num6 + num7;
        byte result3 =(byte)(num6 + num7);
  • boolean 不能数据转换,不能当做0或1

ASCII码表(128种)

  • 常见字符与数字对应关系
    48 ~ 数字0开始到9
    65 ~ 大写字母A开始到Z
    97 ~ 小写字母a到z
		char zifu3 = 'c';
        int num = zifu3;//从小到大自动类型转换
        System.out.println('中' + 0);//20013
        //因为输出时, +将char计算前提升为int再计算

数字和字符的对照关系表(编码表)
ASCII:美国信息交换标准代码
Unicode:万国码,开头0~127,和ASCII一样,128开始有更多字符

基本数据类型极其数学计算

  • float 和 long 赋值时后跟F或L,最好大写因为l与1容易混淆

  • 不同数据类型的运算注意点:
    byte/short/char类型数据在计算时会自动提升为int,所以接收方必须是int或将结果强转
    取模只针对整数,其他取模没意义
    运算当中有不同类型的数据,结果将会是数据类型范围大的那种
    ❤对于String类型数据+为链接,后续加到的都为字符串
    除非用小括号优先级最高,会先加再链接

例如:

System.out.println(50 + 70 + "str"+ 30 + 70);//120str3070
System.out.println("eat" + (40 + 50));//eat90
  • 注意复合赋值运算符隐含了一个强制类型转化
  • byte += 6;//是正确写法,相当于byte + int 要运算所以byte提升为int,运算包括加减乘除,取模。相当于 int + int = int ,直接写byte = 6 + byte 错。
  • 数据类型的默认赋值:
    整型 0
    浮点型0.0
    字符型 ‘\u0000’
    布尔型 false
    引用型 null

5 运算符

四则运算:+,-,*,/
取模,取余数:%(只有对整数用除法,取模才有余数的意义)
注意:一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种

  1. 加号用法
  • 数值,加法
  • char计算前,提升为int再算对应Unicode
  • 对于字符串String,+代表连接
  		String str1 = "Hello";
        System.out.println("Hello" + "World");//HelloWorld
        String str2 = "Java";
        System.out.println(str2 + 20);//Java20
        System.out.println(str2 + 20 + 30);//Java2030
        System.out.println(str2 + (20 + 30));//Java50

任何数据类型和字符串进行连接时,结果都会变成字符串

自增自减,–,++

++ 让一个变量+一个数字1;--让一个变量-一个数字1
++num,先+再用;num++,先用再+;--同理
单独用前后无所谓

        int x = 10;
        int y = 20;
        int result3 = ++x + y--;//11 + 20//x = 11,y = 19

只有变量才能用自增自减,常量不行

num++;30--;×

赋值运算符

+= a+=1 相当于a = a + 1;
-= a -= 3 相当于 a = a -3;
*= 依次类推
/=
%=
注意:
1.只有变量才能使用赋值运算符,常量不能赋值
2.复合赋值运算符其中隐含了一个强制类型转换

byte num = 30;
num += 5;
分析过程 num = num + 5;
= byte + 5
= byte + int
= int + int 前面提过,byte,short,char计算时都会先自动提升成int再计算
= int -> byte = (byte)int
所以说复合赋值运算符中隐含了一个强制类型转换

逻辑运算符

  • 逻辑运算符 && || 短路,即左边条件若能判断结果就不运行右边条件
  • 逻辑与或可连续比较多个条件 A && B && C 。但< ,> 不可以 连续写,只能比较两个

三目运算符

  • 三元运算符 ?:;结果必须被使用,被赋值或打印
3 > 4 ? 2 : 10
        
		if(8 > (3 > 4 ? 2 : 10)){
            System.out.println("nice");
        }
        int result = 3 > 4 ? 2 : 10;
        System.out.println(3 > 4 ? 2 : 10);
  • 两结果必须同时满足于为int,A,B都要符合左侧数据要求
 ● int result = 3 > 4 ? 2.5 : 10;
 int result = 3 > 4 ? 2 : 10;

编译器优化

  • byte/char/short 赋值时若右侧全为常量,如果右侧比较小,会隐含的补上一个强转。 如果右侧值超过,则报错
    在这里插入图片描述

  • switch case 匹配到哪一个case就从哪一个位置向下执行,直到遇到break或整体结束

  • 三种循环里,若条件从未满足,do -while 至少会执行一次

  • 在IDEA中,delete一个Module,外部打开project打开还是存在的,怎么导入一个外部保存的Module
    file-project structure + import module setup sdk即可

  • 方法的三种调用形式,单独调,打印调,赋值调。void返回值类型只能单独调

  • 一个方法中可以有多个return,但必须保证同时只走一个return

  • 重载: 多个方法的名称一样,但参数列表不一样 与参数名称无关,与返回值类型无关

二、编程计算练习

1、 把234(DEC)转为BIN


辗转相除法
234/2 = 117 余0,117/2 =58余1依次类推,直到除数为0停止
234(DEC) = 11101010(BIN)
在这里插入图片描述

验证结果,
在这里插入图片描述

2、把0011010101100(BIN)转为DEC十进制


在这里插入图片描述
验证:1101 0101 100
在这里插入图片描述

3、 字节转换

买一个100Mbps的宽带,问下载速度最快多少

数字信息流的基本单位是比特bit,为一个1或者1个0。所以表示带宽的单位就是bps,意思就是每秒通过的信息流的比特bit数。100M带宽就是100Mbps表示1秒钟通过信息流的比特数为100M,即100*2^20 bit= 1亿(100000000)个位。
因为 8bit = 1Byte,1MB = 2^20 Byte

所以 100Mb = 100/8 MB
100Mb/s = 12.5MB/s

4、DOS操作系统下指令

按照给出指令操作
打开cmd,切换盘符到D盘,进入一个文件夹,打印当前目录下文件,选择一个进入时只打前半部分名称使用补全快捷键,返回上级文件夹,清屏,返回根目录,退出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、判断数据类型定义,分析错误并改正

		byte b1 = y;
        int i1 = 1243;
        char c1 = "@";
        char c2 = '';
        char c3 = '34';
        char c4 = '齐';
        short s1 = 235;
        double d1= 325.214;
        float f1 = 1.2;
        float f2 = 0;
        long l1 = 1235321434543;
        boolean bb1 = true;
        String ss1 = "";
        String ss2 = 's';
        String ss3 = " 45# 53对";


A:
flaot数据在赋值时数值尾部带一个f或者F,long类型同理,带L或l,一般默认大写,因为小写l容易混淆

		byte b1 = 12;
        int i1 = 1243;
        ×char c1 = "@";//char c1 = '@';//字符必须用单引号
        ×char c2 = '';//char c2 = 'd';//字符不可以为空
        ×char c3 = '34';//char c3 = '3';//也不可以为两个字符
        char c4 = '齐';//中文也算一个字符
        short s1 = 235;
        double d1= 325.214;
        ×float f1 = 1.2;//float f1 = 1.2F;//尾带F
        float f2 = 0;//这里正确不是因为0是float类,而是因为自动类型转换,int数据范围更小
        ×long l1 = 1235321434543;//long l1 = 1235321434543L;//尾带L
        boolean bb1 = true;
        String ss1 = "";//可以为空
        ×String ss2 = 's';//String ss2 = "s";//字符串必须用双引号
        String ss3 = " 45# 53对";
        //空常量 null

6、判断对错,并改正

		int num1 = 10;
        num1 += 3;

        int num2;
        System.out.println(num2);

        int x, y, z;
        double a = 1, b = 3.4, c = 5.6;

        byte b1 = 34;
        byte b2 = 5;
        byte b3 = 128;
        short s1 = 98;
        short s2 = 23;
        short s3 = 32768;
        char c1 = '中';
        char c2 = 65535;
        char c3 = 65536;
        long l1 = 12345L;
        double d1 = 23.53;

        int num3 = b1 + s1;
        byte num4 = b2 + s1;
        char num5 = b2 + s1 + c1;

        b2 += s1;

        int num6 = l1 + c2 + b2;
        long num7 = l1 + c2 + b2;
        double num8 = c2 + d1;

 num3 > 7 ? num3 = '*' : num3 = '%';

A:

        num1 += 3;
        
        byte num1 = 10;
		 ● num1 = num1 + 3;
		//错误原因:byte/short/char类型变量计算时都是自动提升为int类型,需要Int类型的变量来接收运算结果

        int num2;
        ● System.out.println(num2);
//错在num2没有初始化赋值,没有初始化之前只是定义了。不可以使用,包括打印或者运算

        int x, y, z;
        double a = 1, b = 3.4, c = 5.6;
//同时初始化定义多个变量,但必须得是同一个数据类型
        byte b1 = 34;
        //解释:虽然是int类型数据赋值给byte类型变量,但byte/short/char有编译器优化,即若赋值的是常量且不超范围,隐含的有一个强转。
        byte b2 = 5;
        ● byte b3 = 128;
        //byte是1个字节,2^7 范围-128 ~ 127
        short s1 = 98;
        short s2 = 23;
        ● short s3 = 32768;
        //short两个字节 2^15,范围-32768 ~ 32767
        char c1 = '中';
        char c2 = 65535;
        ● char c3 = 65536;
         //char取值范围:0~65535
        long l1 = 12345L;
        double d1 = 23.53;

        int num3 = b1 + s1;
        b2 += s1;
         ● byte num4 = b2 + s1;
         ● char num5 = b2 + s1 + c1;
         //问题都在于byte/char/short类型数据运算时会自动提升为int类型
         //而复合运算符会隐含一个强转,所以正确

       ●  int num6 = l1 + c2 + b2;
l1是long类型变量,多种不同数据类型变量计算时,结果的数据类型与数据范围最大的那个一致	,应该用范围大于等于long的数据类型接收
        long num7 = l1 + c2 + b2;
        double num8 = c2 + d1;

	   ● num3 > 7 ? num3 = '*' : num3 = '%';
 //三目运算符的结果一定要被接收,不然就是错

7、判断程序运行结果

  		 int num1 = 10;
        int num2 = 34;
        char num3 = '7';
        char num4 = 97;
//--------------------------------------------------
//前置++和后置的区别,|||两个或运算符区别
        if(num1 < 9 || ++num4 > 97){
            System.out.println(num4);
        } 
	    if(num1 < 9 || num4++ <= 98){
            System.out.println(num4 + 0);
        }
      if(num1 > 9 || num4++ <= 98){
            System.out.println(num4);
        } 
      if(num1 > 9 | num4++ <= 98){
            System.out.println(num4);
        }

//&&,&两个并运算符区别
        if(++num1 > 10 && ++num2 > 34 && ++num3 > '7' ){
            System.out.println(num1 + "," + num2 + "," + num3);
        }
	   if(++num1 < 10 && ++num2 > 34 && ++num3 > '7' ){
            ;
        }else{
            System.out.println(num1 + "," + num2 + "," + num3);
        }
        if(++num1 < 10 & ++num2 > 34 & ++num3 > '7' ){
            ;
        }else{
            System.out.println(num1 + "," + num2 + "," + num3);
        }

       if(num1++ > 11 || ++num2 > 34 || ++num3 > '7' ){
            System.out.println(num1 + "," + num2 + "," + num3);
        }
		if(num1++ > 12 | ++num2 > 35 | ++num3 > '8' ){
            System.out.println(num1 + "," + num2 + "," + num3);
        }
        
        if(num1 < 0 || num1 > 0 && num1++ >= 15){
            System.out.println(num1);
        }
        if((num1 < 0 && num1 > 0) && num1++ >= 16){
            ;
        }
        else{
            System.out.println(num1);

        } 

		num3 = '%';
        System.out.println(num3);
        System.out.println(num3 + 0);

        num3 = '(';
        switch(num3){
            case '*':
                System.out.println("num3是*");
            case '(':
                System.out.println("num3是(");
            case '$':
                System.out.println("num3是$");
                break;
            case '@':
                System.out.println("num3是@");
                break;
            default:
                System.out.println();
                break;
        }
     

A:

 	    int num1 = 10;
        int num2 = 34;
        char num3 = '7';
        char num4 = 97;
//--------------------------------------------------
//前置++和后置的区别,||,|两个或运算符区别
        if(num1 < 9 || ++num4 > 97){
            System.out.println(num4);
        } /*b(98) : 条件1 错,所以 ||或才会判断条件2,++num4先加再使用,98 > 97,if成功*/
	    if(num1 < 9 || num4++ <= 98){
            System.out.println(num4 + 0);
        }/*99 : num4先用后加,98 <= 98后再++ ,char类型运算提升为int输出 */
      if(num1 > 9 || num4++ <= 98){
            System.out.println(num4);
        }  /*c(99) :因为|| 中条件1true,已经可以确定结果是true,条件2不执行*/
      if(num1 > 9 | num4++ <= 98){
            System.out.println(num4);
        }//d(100) | 和&都没有短路,已经能出结果也会执行所有条件

//&&,&两个并运算符区别
        if(++num1 > 10 && ++num2 > 34 && ++num3 > '7' ){
            System.out.println(num1 + "," + num2 + "," + num3);
        }//11,35,8 :其中8是字符格式,&&是可以连续判断多个条件当没有错误的,就无法短路,全执行,++num1先加再用
	   if(++num1 < 10 && ++num2 > 34 && ++num3 > '7' ){
            ;
        }else{
            System.out.println(num1 + "," + num2 + "," + num3);
        }//12,35,8 :条件1错,后续条件不执行
        if(++num1 < 10 & ++num2 > 34 & ++num3 > '7' ){
            ;
        }else{
            System.out.println(num1 + "," + num2 + "," + num3);
        }//13,36,9//条件1 错不影响全部条件都要执行

       if(num1++ > 11 || ++num2 > 34 || ++num3 > '7' ){
            System.out.println(num1 + "," + num2 + "," + num3);
        }//14,36,9 : 条件1先用后加,11 > 11 false,短路,后续条件不执行
		if(num1++ > 12 | ++num2 > 35 | ++num3 > '8' ){
            System.out.println(num1 + "," + num2 + "," + num3);
        }//15,37,:(10) :条件1 12 > 12先用后加到13 ,错不影响后续执行
        
        if(num1 < 0 || num1 > 0 && num1++ >= 15){
            System.out.println(num1);
        }//16 :&& 优先级高于||,相当于(false || (true && true))
        if((num1 < 0 && num1 > 0) && num1++ >= 16){
            ;
        }
        else{
            System.out.println(num1);

        } //16 :(false && true) && 不执行

        //num3 > 7 ? num3 = '*' : num3 = '%';


		num3 = '%';
        System.out.println(num3);//%
        System.out.println(num3 + 0);//37

        num3 = '(';
        switch(num3){
            case '*':
                System.out.println("num3是*");
            case '(':
                System.out.println("num3是(");
            case '$':
                System.out.println("num3是$");
                break;
            case '@':
                System.out.println("num3是@");
                break;
            default:
                System.out.println();
                break;
        }
        //num3是(
        //num3是$
        //: 因为一遇到符合的case就进入,但遇到break才会退出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/291906.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

P1019 [NOIP2000 提高组] 单词接龙

网址如下&#xff1a;P1019 [NOIP2000 提高组] 单词接龙 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 很怪&#xff0c;不知道该说什么 我试了题目给的第一个测试点的输入&#xff0c;发现输出和测试点的一样&#xff0c;但是还是WA 不是很懂为什么 有没有大佬帮我看一下…

用 Python 抓取 bilibili 弹幕并分析!

01 实现思路 首先&#xff0c;利用哔哩哔哩的弹幕接口&#xff0c;把数据保存到本地。接着&#xff0c;对数据进行分词。最后&#xff0c;做了评论的可视化。 02 弹幕数据 平常我们在看视频时&#xff0c;弹幕是出现在视频上的。实际上在网页中&#xff0c;弹幕是被隐藏在源代码…

14.两数之和

题目 class Solution {public int[] twoSum(int[] nums, int target) {int[] ret {-1,-1};for(int i0;i<nums.length;i) {for(int ji1;j<nums.length;j) {if(nums[i] nums[j] target) {ret[0] i;ret[1] j;}}}return ret;} }

顶顶通呼叫中心中间件配置背景音乐(mod_cti基于FreeSWITCH)

介绍 配置外呼任务拨打时的背景音乐&#xff0c;一步步配置 一、配置队列外呼模板 打开ccadmin->队列呼叫模板->添加一条变量根据下方图片配置 二、上传音乐文件 后缀格式为.wav格式的声音文件&#xff0c;声音文件需要上传在这个目录&#xff1a;/ddt/fs/sounds/ct…

【编译原理】期末预习PPT前四章笔记II

看了看学校的ppt&#xff0c;记的比较随意O.o 因为我的考试范围里边没有简答所以概念什么的没怎么记 没有简答只有选择真是太好了嘿嘿嘿 目录 I. 概述&#xff08;好多字。。&#xff09; 一、高级语言的分类 1、体裁 2、执行方式 二、各种语言的执行方式 三、编译程序…

基于ssm的医院交互系统+vue论文

医院交互系统的设计与实现 摘要 当下&#xff0c;正处于信息化的时代&#xff0c;许多行业顺应时代的变化&#xff0c;结合使用计算机技术向数字化、信息化建设迈进。传统的医院交互信息管理模式&#xff0c;采用人工登记的方式保存相关数据&#xff0c;这种以人力为主的管理模…

CCNP课程实验-07-OSPF-Trouble-Shooting

目录 实验条件网络拓朴 环境配置开始排错错点1&#xff1a;R1-R2之间认证不匹配错误2&#xff1a;hello包的时间配置不匹配错误3&#xff1a;R2的e0/1接口区域配置不正确错误4&#xff1a;R4的e0/1接口没有配置进OSPF错误5&#xff1a;R2的区域1没有配置成特殊区域错误6&#x…

RK3568 学习笔记 : ubuntu 20.04 下 Linux-SDK 镜像烧写

前言 开发板&#xff1a;【正点原子】ATK-DLRK3568 开发板&#xff0c;编译完 Linux-SDK 后&#xff0c;生成了相关的镜像文件&#xff0c;本篇记录一下 镜像烧写&#xff0c;当前编译环境在 VMware 虚拟机中&#xff0c;虚拟机系统是 ubuntu 20.04 此次烧写还算顺利&#xff…

2024腾讯云轻量应用服务器详细介绍_轻量全解析

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器&#xff0c;CPU内存带宽配置高并且价格特别便宜&#xff0c;大带宽&#xff0c;但是限制月流量。轻量2核2G3M带宽62元一年、2核2G4M优惠价118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;756元3年、…

pod探针

Pod进阶&#xff1a; 探针* Poststart Prestop pod的声明周期开始&#xff1a; k8s的pod重启策略&#xff1a; Always deployment的yaml三种模式都可以&#xff0c;不论正常退出还是非正常退出都重启 OnFailure:只有状态码非零才会重启&#xff0c;正常退出事不重启的 …

产品手册非常重要,对产品推广的有很大的影响

如今产品手册作为企业传递产品信息的重要媒介&#xff0c;其制作与呈现方式对于产品的推广和销售具有至关重要的影响。一个优秀的产品手册不仅能够帮助消费者更好地了解产品&#xff0c;还能提升品牌形象&#xff0c;进一步推动产品的市场推广。 | 一、产品手册的重要性体现在以…

mysql 增删改查 数据库基本操作

mysal 数据库基本操作 1&#xff0c;库相关 创建数据库 create database 库名&#xff1b; 查看有哪些数据库 show databases&#xff1b; 结构性删除数据库 drop database 库名&#xff1b; 查看数据库基本信息&#xff08;字符集&#xff09; show create database 库名&am…

人工智能AI与3D视觉技术的结合正在引领新一代移动机器人的革新

随着科技的飞速发展&#xff0c;人工智能AI与3D视觉技术的结合正在引领新一代移动机器人的革新。富唯智能移动机器人&#xff0c;以其独特的3D视觉技术&#xff0c;赋予了移动机器人一双“智慧之眼”&#xff0c;从而为现代工业自动化带来了前所未有的突破。 富唯智能移动机器…

自制c++题目《模板综合》

1.输出结果&#xff1a; 2.主函数不允许改变 int arr[5] { 5,2,3,1,4}; char arr1[5] { a,c,b,e,d }; good <int>a(arr,5); good <char>b(arr1,5); bad<int>(1,2); bad<float>(1.1, 1.2); 自制c题目《模板综合》 王赫辰/c语言 - Gitee.com

【深度学习】各领域常用的损失函数汇总(2024最新版)

目录 1、L1 损失、平均绝对误差&#xff08;L1 Loss、Mean Absolute Error&#xff0c;MAE&#xff09; 2、L2 损失、均方误差&#xff08;L2 Loss、Mean Squared Error&#xff0c;MSE&#xff09; 3、交叉熵损失&#xff08;Cross-Entropy Loss&#xff09; 4、混合损失&…

Music!18+免费音乐搜索、音乐下载网站合集!

划到最后“阅读原文”——领取工具包&#xff08;超过1000工具&#xff0c;免费素材网站分享和行业报告&#xff09; Hi&#xff0c;我是胡猛夫~&#xff0c;专注于分享各类价值网站、高效工具&#xff01; 更多内容&#xff0c;更多资源&#xff0c;欢迎交流&#xff01;公 号…

深度学习课程实验一浅层神经网络的搭建

一、 实验目的 1、学习如何建立逻辑回归分类器用来识别猫。将引导你逐步了解神经网络的思维方式&#xff0c;同时磨练我们对深度学习的直觉。&#xff08;说明&#xff09;&#xff1a;除非指令中明确要求使用&#xff0c;否则请勿在代码中使用循环&#xff08;for / while&am…

使用Go语言实现RESTful API

RESTful架构是一种设计风格&#xff0c;用于构建网络应用程序的API。它基于HTTP协议&#xff0c;并使用不同的HTTP方法&#xff08;如GET、POST、PUT、DELETE等&#xff09;来处理不同的操作。在Go语言中&#xff0c;我们可以使用标准库中的net/http包来实现RESTful API。 下面…

申请域名SSL证书并自动推送至阿里云 CDN

近期国外SSL证书厂商调整了免费证书的续签规则&#xff0c;一年期的证书全部取消&#xff0c;现在只能申请90天有效期的免费证书。普通web站点可以通过宝塔面板或部署acme.sh等证书自动管理工具来实现自动化申请和部署&#xff0c;但是阿里云之类的CDN服务就只能通过手动或Open…