Java基础——Day02
0.回顾
1.Java发展史---了解高斯林
2.Java开发环境搭建 --- 实操
Windows环境【本地开发环境】、Linux【从0到1,小概率事件
3.HelloWorld的一些注意点 ---实操
4.3大注释 --- 使用
5.8大基本类型 ---掌握
6.跨平台的原理---了解
7.JavaSE -》J2SE、JavaEE、JavaME
8.Java能搞什么
9.变量和常量
10.键盘输入:Java基础语法这几天只要掌握如何使用即可
0.1.变量的命名规范
1.组成部分:字母、下划线、$、数字 【字、下、美、人、数】
2.不能是关键字,可以包含关键字,比如myClass
3.不能以数字开头
4.小驼峰命名规则
0.2常量的命名规范
- 常量名都大写: PI , month ×
- 多个单词组成,一般使用_ 分割, MY_RATE
1.数据类型转换
了解的常用编码格式:
【硬性要求】
使用字符,请使用字符本身,不允许使用字符对应的编码!!!
GBK:
新国标,包含了简体中文所有的文字,以及少数民族文字
GB2312:
老国标,包含了简体中文所有的文件,以及一部分少数民族文字
BIG5:
中文繁体字编码集,主要用于中国*,中国香港,中国澳门,新加坡
UTF-8:
万国码,包含了所用国家的文字,也是开发中使用最多的编码,IDEA,MySQL HTML5 ASCII:
美国标准什么什么协会,闲着没事做的编码,然后觉得很low,就开始凑数!!!
原码、反码、补码
注意:负数
正数:三码合一
十六进制、八进制、二进制分别是什么,以及如何转换
2.运算符
2.0赋值运算符
= :赋值
2.1算术运算符
+、-、*、/、%
注意: a++,++a
//a++、++a的区别
//独立一行一句,没有区别,都是对a进行+1,等效于 a = a + 1
//若在其他语句【赋值、表达式、输出语句。。。】中使用,则符合下面的规律
//a++:先用,后+1
//++a:先+1,后使用
键盘输入一个四位数,计算每个位数之和 例如6789 6+7+8+9
import java.util.Scanner;
public class Test05{
public static void main(String[] args)
{
//键盘输入一个四位数,计算每个位数之和 6789 6+7+8+9
Scanner input = new Scanner(System.in);
System.out.println("请输入一个四位数");
int a=input.nextInt();
int b=a/1000;
int c=a/100-10*b;
int d=a/10-100*b-10*c;
int e=a-1000*b-100*c-10*d;
int f=b+c+d+e;
System.out.println("各位之和为"+f);
}
}
2.2比较运算符
>、>=、<、<=、==、!=
它的结果是boolean类型
2.3逻辑运算符
&-短路与、&、||-短路或、| 、!-取反
对于短路与:若左边的结果为false,它就可以决定整个表达式的结果,此时逻辑运算符右边的表达式就不用计 算了
对于短路或:若左边的结果为true,它就可以决定整个表达式的结果,此时逻辑运算符右边的表达式就不用计 算了
对于非短路:无论左边的结果为true还是false,都要计算右边的结果 开发中,使用的基本上是短路
2.4复合运算符
// += -= *= /= %=
d += 1; //a = a + 1
byte e = 50;
//byte f = e + 1; 编译不通过
e +=1; //编译通过,帮我们转换了类型
2.5位运算符
//位运算:如何高效的实现2*8 = 16 幂 mi
// 16 / 4 = 4
System.out.println(2 << 3);
System.out.println(16 >> 2);
左移运算符"<<"是双目运算符。左移n位就是乘以2的n次方。 其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
右移运算符">>"是双目运算符。右移n位就是除以2的n次方
其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。
————————————————
版权声明:本文为CSDN博主「zoeLcjy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43624737/article/details/116701770
2.6三元运算符
语法:
表达式?结果1:结果2
注意:三元运算符必须有一个变量来接收它的结果;它的结果的数据类型,取决于你结果1和结果2的数 据类型
举例:
<!--键盘输入数学成绩和英语成绩,若英语成绩高于数学成绩,则打印英语好、数学差-->
import java.util.Scanner;
public class Test05{
public static void main(String[] args)
{
//键盘输入数学成绩和英语成绩,若英语成绩高于数学成绩,则打印英语好、数学差
Scanner input = new Scanner(System.in);
System.out.println("请输入数学成绩");
double a=input.nextDouble();
System.out.println("请输入英语成绩");
double b=input.nextDouble();
String d= (a<b?"英语好数学差":"英语差数学好");
System.out.println("结果:"+d);
}
}
3.分支结构
明确:生活中处处有选择,即分支
程序就是为了解决生活问题,如何使用代码去解决这种选择的难题。
3.1if分支
在整个if分支结构中,else是可选的,你根据自己的情况去选择
3.1.1单分支
造句:如果.....boolean值,就 【要干的事情】
if(boolean表达式)
{
语句块
}
需求:如果你今天迟到,明天就请大家吃包子;不迟到,那是你的职责
3.1.2双分支
if(boolean表达式) {
语句块;
} else {
}
补充:随机数
//产生随机数,Math.random() ,产生的是[0,1)的double类型的数
//计算 [23,56]这个范围的整数,怎么搞 (int)(r*34 + 23) -> (int)(r*[end-start+1] + start) double r = Math.random();
System.out.println(r); if(boolean值){
} else {
}
3.1.3多分支
使用多重if的时候,要注意每个条件的顺序问题,虽然语法没有错误,乱放的话,可能不符合我们 的期望的结果。
对于多分支情况,可以使用多个if,但是多个if有个问题,即每个if都要判断一次,效率较为低下。 我们期望的是匹配到一个分支之后,就结束这个流程。
语法:
if(条件1){
语句1;
} else if(条件2) {
语句2;
} else if(条件3) {
语句2;
} else {
}
需求:买彩票,中1一个亿,[0-1w),[1,50w),[50,100),[100,正无穷)
练习:
1.输入月份,判断该月份属于哪个季度
2.输入数字,掷骰子,根据3个骰子的和去判断,是豹子还是大或者小 ,定义三个变量a b c
public class Test08{
public static void main(String[] args) {
//输入月份,判断该月份属于哪个季度
int month = 2;
if(month >= 1 && month <=3) {
System.out.println("1......");
} else if(month >=4 && month <=6) {
System.out.println("2.......");
}
System.out.println("-==========================");
System.out.println("请押宝:大、小、豹子");
//你要从键盘输入
String input = "大";
int a = (int)(Math.random()*6+1);
int b = (int)(Math.random()*6+1);
int c = (int)(Math.random()*6+1);
int sum = a + b +c;
String result = "";
if(a==b && b==c) {
System.out.println("系统产生的结果为豹子");
result = "豹子";
if(input.equals(result)) {
System.out.println("压对了.....");
} else {
System.out.println("压的不对");
}
} else if(sum >= 12) {
System.out.println("系统产生的结果为大");
} else {
System.out.println(">>>>>>>>>>>>");
}
}
}
3.1.4嵌套if
对于嵌套if,一般建议2-3层
if(条件) {
if(条件) {
} else {
}
}
例子:转行大数据【是否学大数据 y/n,键盘输入】,若学习的话,选择哪家培训机构A、B、C【键盘输入】;不学的话,依然干老本行