package Chpater002;
//import java.util.Scanner;
import java.util.*;
public class Demo {
public static void main(String[] args) {
/**
* 什么叫变量:一个数据空间的表示.
* 数据类型.:基本数据类型
* 数值型: 整型 和 浮点型(非整型)
* 1.整型: 取值范围
* byte : 2^8 -2^7 --- 2^7-1 (-128 -- 127)
* short: 2^16 -2^15 --- 2^15 - 1
* int : 2^32 -2^31 --- 2^31 - 1
* long : 2^64 -2^63 --- 2^63 - 1
*
* long型接收超过int类型范围的时候,需要通过转义符进行转义才能识别。
* 因为系统默认识别的是int类型。一旦超过就不识别的。所以需要转义。
* 通过后缀加 转义符 L 或 l。
* long num = 214748364780L; 或者 long num = 214748364780l;
*
* 2.浮点型
* float:单精度浮点型
* 需要转义符进行转义,系统会默认识别double类型。 F 或者 f.
* double:双精度浮点型 取308位数.
*
* 3.字符型
* char: 只能存储一个字母或者一个中文。 利用单引号 括起来。
* 例如: char sex = '男';
*
* 4.布尔类型(布林类型)
* boolean: 只能存储两个值: true or false
*
*
* 5.引用数据类型
* String:字符串类型 字符串的长度 >= 0
*
* 变量的使用。
* 重点:变量是需要先声明,再赋值才能使用。
*
* 创建变量的语法:
*
* 数据类型 变量名; //声明变量(在内存当中开辟了一个合适的空间)
* int number;
* 变量名 = 值; //给空间进行赋值。
* number = 12;
* 二合一:
* 数据类型 变量名 = 值; //声明变量并赋值。
* int number = 12;
*
* 定义变量名的规则:
* 驼峰命名法: 首字母是小写.后面的单词的首字母大写.
*
* 定义类名的规则:
* 帕斯卡命名法: 首字母大写,后面的单词的首字母大写.
*
*
* 运算符:
* 1.赋值运算符
* =: 赋值的方式:从后面把值赋给左边的变量.
*
* 扩展的赋值运算符:
* += : 在直接本身进行运算之后赋值.
* -=
* *=
* %=
* 2.算数运算符
* +,-,*,/,%
* %: 取余数. (除不尽剩下的值)
* 例如: 5%3 == 2 商为1,余数为2.
*
* 12%12 == 0
* 5 % 9 == 5 0
*
* 关键点:
* 如果表达式都是int类型的.那么结果就是int类型.
* 如果有小数点,那么就会向下取整.(不会四舍五入)
* 如果表达式其中有一个是浮点型,那么结果就是浮点型的.
*
* 控制台输入数据.
* 1.需要先导入包(类)
*
* import java.util.Scanner; (类)
* import java.util.*; //*:通配符,代表所有的意思.
*
* 2.创建Scaner对象.
* Scanner input = new Scanner(System.in);
*
* 3.调用Scanner类的方法。 利用对象进行调用。
* 1.接收String类型。
* input.next();
* 2.接收int类型
* input.nextInt();
* input.nextByte()
* input.nextLong();
* 3.接收浮点型
* input.nextFloat();
* input.nextDouble();
*
* 4.接收char型的。需要转换
* input.next().charAt(0); 0代表的是索引,下标, 从0开始的。
*
*
* 类型转换
* 1.自动类型转换.
* 浮点型的取值范围比整型的取值范围大.
*
* 大可以包小.小不能包大.
*
* 小转大,自动转.(整型转换为浮点型)
*
* double number = 12; 结果为12.0.自动转换了。
*
* 2.强制类型转换.
*
* 大转小,强制转.(浮点型转换为整型)
*
* int number = 12.3456; 结果直接报错。类型不匹配。
* 需要强制转换。
*
* int number = (int) 12.99999; 结果为12. 向下取整。
*
* 关键点:
* 如果表达式都是int类型的.那么结果就是int类型.
* 如果有小数点,那么就会向下取整.(不会四舍五入)
* 如果表达式其中有一个是浮点型,那么结果就是浮点型的.
*
* // 12/5 都是int类型,所以结果为int类型。 2
//再把2复制给 double类型,自动类型转换。
//所以结果为2.0
扩展运算符:
i ++:
i --:
++ i:
-- i:
最总结果都是一样。 自身 + 1,或者自身 - 1.
如果是赋值或者是输出语句当中。 含义就有所不同。
i ++: 先赋值,再自身+1.
++i : 先自身+1,再赋值。
比较运算符
>,<,<=,>=,==,!=
利用比较运算符得到的结果:boolean类型。
只能有两个值:true or false
*/
Scanner input = new Scanner(System.in);
boolean find = (12+15%2) + 3 > 0;
System.out.println(find);
/*int i = 0;
i++; //1
++i; //2
System.out.println(++i); // 3
System.out.println(i--); // 3
System.out.println(i); // 2
*/
/*int a = 12 +'A'; //a代表再内存当中的位置。 97
System.out.println(a);
*/
int i = 1;
int j = i++; //j = 1; i = 2
System.out.println(j++); //先输出1,再继续+1. 2
System.out.println(++j); //先进行+1, 3再输出 3
/*
double number4 = 12;
System.out.println(number4);
int number5 = (int) 12.999;
System.out.println(number5);*/
/*System.out.print("请输入性别:");
char sex = input.next().charAt(0);
System.out.println(sex);
*/
//输入的提示语言
System.out.print("请输入您的成绩:");
double age = input.nextDouble();
System.out.println(age);
int num = 19345;
int gewei = num % 10;
int shiwei = num / 10 % 10;
int baiwei = num /100 % 10;
int qianwei = num /1000 % 10;
int wangwei = num / 10000;
System.out.println(qianwei);
String stuName = "张三"; //学生姓名
int stuAge = (6 + 12) * 2; //学生年龄
char stuGender = '男'; //学生性别
int number = stuAge; //通过变量名赋值给变量名.
number += 3; //在自己本身基础上再进行 + 3.
//number = number + 3;
number /= 3;
//number = number / 3;
number *= 2;
number %= 3;
//System.out.println(number);
}
}