注释
单行注释:// 多行注释:/* */ 文档注释:/** **/
关键字
关键字的字母全部小写
class:用于(创建/定义)一个类,class后是类名
字面量
数据在程序中的书写类型
字符串类型(用双引号括起来)“helloworld”
字符类型(用单引号括起来【内容只能有一个】)‘A’,‘我’
\t:制表符
在打印时,把前面字符串的长度补齐到8或者8的倍数,最少补一个空格,最多补8个空格
变量
某个数据经常发生变化时,用变量存储。当数据变化时,修改变量里面记录的值。
数据类型 变量名 = 数据值;
数据类型:为空间中存储的数据,加入类型【限制】整数
变量使用方法 1、输出打印 2、参与计算 3、修改记录值
public class Variable {
public static void main(String[] args){
//数据类型:整数类型,变量名:a,数据值:1
int a = 1;
System.out.println(a); // 1
a=2;
System.out.println(a); // 2
int b;
b=20;
System.out.println(b); //20
int c = a+b;
System.out.println(c); //22
}
}
变量注意事项
- 只能存一个值
- 变量名不能重复
- 一条语句可以定义多个变量
- 变量在使用前一定要赋值 ---建议(定义变量是直接赋值)
int d = 100,e = 200,f=300;
变量练习
public class VariableTest {
public static void main(String[] args){
//第一站:上去一位乘客
//第二站:上去两位乘客,下来一位乘客
//第三站:上去两位乘客,下来一位乘客
//第四站:下来一位乘客
//第五站:上去一位乘客
//到终点站,车上一共几位乘客
int count = 0;
count = count+1+2-1+2-1-1+1;
System.out.println("到终点站后车上有乘客"+count+"位");
}
}
计算机存储规则
计算机中,任意数据都是以二进行形式存储的(打孔)(高压低压)
- 二进制:由0和1组成,代码中0b开头
- 十进制:由0到9组成,代码中不加任何前缀
- 八进制:由0到7组成,代码中0开头
- 十六进制:由0到9和a到f组成,代码中0x开头
System.out.println(17); // 17
System.out.println(017); // 15
System.out.println(0b100); // 4
System.out.println(0x17); // 23
数据类型
1、基本数据类型
- 整数:byte 1 位 ;short 2 位;int 3 位;long 8 位(后缀L)
- 浮点数:float 4 位(后缀F);double 8 位
- 字符:char 2 位
- 布尔:bool 1 位
String name = "姚困困";
int age = 22;
char sex = '女';
double height = 165;
boolean flag = true;
System.out.println(name);
System.out.println(age);
System.out.println(sex);
System.out.println(height);
System.out.println(flag);
2、标识符:给类,方法,变量等起的名字
- 由数字、字母、下划线(_)和美元符($)组成
- 不能以数字开头
- 不能是关键字
- 区分大小写
建议
小驼峰命名法:方法、变量
- 标识符是一个单词时,全部小写
- 标识符是多个单词组成时,第一个单词首字母小写,其他单词首字母大写
大驼峰命名法:类名
- 标识符是一个单词时,首字母大写
- 标识符由多个单词组成时,每个单词首字母大写
见名知意
3、键盘录入
Scanner类可以接受键盘输入的数字
- 导包 import java.util.Scanner;
- 创建对象 Scanner sc = new Scanner(System.in); sc是变量名,可以修改
- 接受数据 int i = sc.nextInt(); i是变量名,可以修改
//键盘录入两个值并且相加
System.out.println("请输入第一个整数");
Scanner sc = new Scanner(System.in);
int first = sc.nextInt();
System.out.println("请输入第二个整数");
int second = sc.nextInt();
int sum = first+second;
System.out.println("相加之和为"+'\t'+sum);
运算符
整数参与运算只会得到整数,小数参与计算可能会出现不精确结果
package Day01;
public class Arithmeticoperator {
public static void main(String[] args){
//运算符
// +
System.out.println(5+4);//9
//-
System.out.println(5-4);//1
//*
System.out.println(5*4);//20
//除法
System.out.println(10/3);// 3 整数参与计算只会出现整数
//%
System.out.println(5%4);//1
//小数参与
//在代码中如果有小数参与,可能会出现不精确结果
System.out.println(1.1+1.01);
}
}
//键盘录入123 打印3 2 1、
Scanner sc = new Scanner(System.in);
System.out.println("输入整数");
int num = sc.nextInt();
int a = num%10; // 百位
int b = num/10%10;
int c = num/100%10;
System.out.println(a);
System.out.println(b);
System.out.println(c);
算术运算符
隐式转换(自动类型提升)【取值范围小的变成取值范围大的】
- 取值范围小的和取值范围大的进行计算,小的会自动提升为大的在进行计算
- byte short char 三种类型的数据在运算时,都会直接提升为int再进行计算
强制转换【取值范围大的赋值给取值范围小的】
- 格式:目标函数类型 变量名 = (目标函数类型)被强转的数据;
字符串 “+” 操作
- 当 “+” 操作中出现字符串时,“+” 号表示字符串拼接符,将前后的数据进行拼接 “123”+123=“123123”
- 连续加 “+” 操作时,从左到右逐个进行 1+99+“姚” = “100姚”
字符 “+” 操作
当字符相加时,会把字符通过ASCII码表查询到的对应数字再进行计算
自增自减运算符:++和--可以放到运算符前面或者后面
单独使用时,++和--放到运算符前面或者后面的结果是一样的
参与计算时
- a++:先用后加
- ++a:先加后用
int x = 10;
int y = x++;
int z = ++x;
System.out.println("x:"+x);//单独使用两次 10+1+1 = 12
System.out.println("y:"+y);//先用再加 10
System.out.println("z:"+z);//先加再用 11+1 = 12
赋值运算符:==,+=,-=
关系运算符:==,!=,>,>=,<,<= 布尔类型
//键盘录入两个数字 a和b
//如果a>b返回true 否则false
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字");
int a = sc.nextInt();
System.out.println("请输入第二个数字");
int b = sc.nextInt();
if (a>b)
System.out.println("true");
else
System.out.println("false");
逻辑运算符 & | ^ !
分支运算符 if 一行语句可以不用写大括号【尽量写】 对布尔类型判断不要==,之间把变量写在小括号中
if (关系表达式){ 语句体1 } else{ 语句体2 }
//键盘录入一个整数(1-100)表示票号,票号为奇数坐在左边,否则坐在右边
Scanner sc = new Scanner(System.in);
System.out.println("输入一个整数(1-100)");
int tickets = sc.nextInt();
if(tickets>=0&&tickets<=100){
if(tickets%2==0){
System.out.println("sit down right");
}else{
System.out.println("sit down left");
}
}else{
System.out.println("输入0到100之间的数字");
}
if (关系表达式1){ 语句体1; }else if(关系表达式2){ 语句体1; }else if(关系表达式2){ 语句体2; } ... else{ 语句体3; }
Scanner sc = new Scanner(System.in);
System.out.println("输入小明的分数");
double socre = sc.nextDouble();
if(socre>=95&&socre<=100){
System.out.println("恭喜获得自行车一辆");
}else if(socre>=90&&socre<=94){
System.out.println("恭喜获得游乐场一天");
}else if(socre>=80&&socre<=89){
System.out.println("恭喜获得变形金刚一个");
}else{
System.out.println("gungungun");
}
分支运算符 switch
switch (表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; case 值3: 语句体3; break; ... default: 语句体n; break; }
先计算表达式的值,依次和case后面的值进行对比,如果有对应的值,就会执行相应的语句,在执行语句过程中,遇到break就会结束。所有case后面的值与表达式的值不同执行default里面的语句体。
Scanner sc = new Scanner(System.in);
System.out.println("输入当前星期数[1-7]");
int week = sc.nextInt();
switch (week){
case 1:
System.out.println("跑步gogogo");
break;
case 2:
System.out.println("游泳gogogo");
break;
case 3:
System.out.println("慢走gogogo");
break;
case 4:
System.out.println("单车gogogo");
break;
case 5:
System.out.println("拳击gogogo");
break;
case 6:
System.out.println("爬山gogogo");
break;
default:
System.out.println("吃饭gogogo");
}
若没有写break,先进行匹配,若匹配成功且碰到break则结束switch语句。若没有匹配成功则继续执行下一个case语句直到成功。
循环结构
for 循环
for(初始化语句;条件判断语句;条件控制语句){ 循环体语句; }
- 初始化语句执行一次
for(int i = 1;i<10;i++){
System.out.println(i);
}
//键盘录入两个数字,表示一个范围
//统计这个范围内,既能被3整除又能被5整除
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字表示开始范围");
int firstNum = sc.nextInt();
System.out.println("请输入第二个数字表示结束范围");
int secondNum = sc.nextInt();
int count = 0;
for(int i = firstNum;i<=secondNum;i++){
if(i%3==0&&i%5==0){
count+=1;
System.out.println(i);
}
}
System.out.println(count);
while循环 初始化语句; while (条件判断语句){ 循环体语句; 条件控制语句; }
for和while循环区别:for循环中,控制循环的变量在for循环语法结构中,在for循环结束后不能再次访问。while循环中,控制循环的变量没有在while循环语法结构中,在while循环结束后依旧可以访问。
for循环知道循环次数或者循环范围,while循环不知道循环次数和范围,只知道循环结束条件
//回文数 把数字倒过来与原来数字进行比较
int x = 1221;
int temp = x;//临时变量,用于最后结果比较
int num = 0;
while (x!=0){
//从右向左获取每一位数字
int ge = x%10;
x = x/10;
//将当前获得的数字拼接到最右边
num = num*10+ge;
}
if(num==temp){
System.out.println(true);
}else {
System.out.println(false);
}
continue:跳过本次循环,继续执行下次循环;break结束整个循环
//从任意一个数字开始报数,报的数是7的倍数或者包含7时说过
//打印1-100之间的逢7过
for(int i=1;i<=100;i++){
if(i%10==7||i/10%10==7||i%7==0){
System.out.println("过");
continue;
}
System.out.println(i);
}
随机数
//获取随机数 Random r = new Random(); int num1 = r.nextInt(10); //0-9 //获取任意数到任意数之间的随机数 7-15 //1、让这个范围头尾都减去一个值,使得范围从0开始 -7 0-8 //2、尾巴+1 8+1=9 //3、最终结果加上第一步减去的值 int num2 = r.nextInt(9)+7; System.out.println(num2);
//猜数字
//随机生成1-100之间数字,键盘录入猜
//如果3次猜不中,直接提示猜中了
Random r = new Random();
int num = r.nextInt(101)+1;
System.out.println("随机数"+num);
int count = 0;
Scanner sc = new Scanner(System.in);
System.out.println("输入猜测数");
int myNum = sc.nextInt();
while (count<2){
count+=1;
if(myNum>num){
System.out.println("大了,再次输入猜测数");
myNum = sc.nextInt();
}else if(myNum<num){
System.out.println("小了,再次输入猜测数");
myNum = sc.nextInt();
}
}
System.out.println("猜对了");