变量与运算符
关键字和保留字
class(定义类)
标识符
1.要求①由26个英文字母大小写,0-9,_或$组成;②数字不开头;③不可为关键字和保留字,但可包含;④不可含空格。
2.命名规范
包名:多单词组成时全小写
类名、接口名:多单词组成时首字母大写
变量名、方法名:多单词组成时第一个单词首字母小写,从第二个开始首字母大写
常量名:所有字母都大写,多单词组成时每个单词用下划线链接
变量
先声明后使用,有作用域。
数据类型:
基本数据类型:数值型(byte/short/int/long/float/double)、字符型(char)、布尔型(boolean)
引用数据类型:类(class)<--字符串、接口(interface)、数组
注:1.声明long型变量,必须以L或l结尾,如long a=958522487L;
2.声明float型变量,必须以f或F结尾
3.char表示方式:一个字符(带单引号)、转义字符、直接使用Unicode值来表示字符型常量。
package j1;
public class bianliang {
public static void main(String[] args){
int age=12;
double a=123.3;
float b=12.3f;
char c='\t';
char d='\u0123';
System.out.println(age);
System.out.println(a+1);
System.out.println(b);
System.out.print("hello"+c);
System.out.println("world");
System.out.println(d);
}
}
4.boolean只能取两个值,true/false,通常在条件判断,循环结构中使用。
基本数据类型之间的运算规则:
1.自动类型提升
byte\short\char-> int-> long-> float-> double
class test{
public static void main(String[] args){
byte a=2;
int b=129;
int c=a+b;
}
}
2.强制类型转换(可能损失精度)
class test{
public static void main(String[] args){
double a=12.3;
int b=(int)a;
}
}
注:1.整形常量默认为int型,浮点常量默认为double型
2.String类型变量的使用:
①为引用数据类型
②可和8种基本数据类型变量做运算,且只能是连接运算(+)
③运算的结果仍为String类型
a->97,A->65
dest.equals(arr[i])用来比较字符串是否相等
class test{
public static void main(Sting[] args){
String a="hello world";
int b=1001;
String c=a+b;
System.out.println(c);
}
}
运算符
算数运算符
1.%结果的符号与被取余的数的符号相同。
2.自增1不会改变数据的类型。
赋值运算符
int i1=10;
int j1=10;
int i2,j2;
i2=j2=10;//连续赋值
int i3=10,j3=20;
+=等运算符不会改变数据类型
比较运算符
instanceof检查是否是类的对象
逻辑运算符
比较运算符的结果是boolean类型
单与,当第一个是false,后面仍执行,双与,当前面有false,后面不执行
位运算符
右移,前面补的数字由原数字的正负决定
~取反
三元运算符
可嵌套
凡是可以写成三元运算符都可换成if-else。反之,不成立。
优先级问题
程序流程控制
Scanner类的具体实现步骤:
1.导包:import java.util.Scanner;
2.Scanner的实例化
3.调用Scanner类的相关方法,来获得指定类型的变量
对于char型,没有提供相关的方法,只能获取一个字符串
需要根据相应的方法,输入指定类型的值,若不匹配,会报错,导致程序终止
如果多个表达式之间是包含的关系,通常情况下,需要将范围小的声明放在范围大的上面,否则,,范围小的没机会执行。
package j1;
import java.util.Scanner;
public class bianliang {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);//造了个对象,System.in是从键盘输入的意思
System.out.println("请输入你的姓名:");
String name=scan.next();
System.out.println(name);
System.out.println("请输入你的年龄:");
int age=scan.nextInt();
System.out.println(age);
System.out.println("请输入你的体重:");
double weight=scan.nextDouble();
System.out.println(weight);
System.out.println("是否满意:");
boolean a=scan.nextBoolean();
System.out.println(a);
System.out.println("性别");
String gender=scan.next();
char genderChar=gender.charAt(0);//获取索引位置为0的字符
System.out.println(genderChar);
}
}
顺序结构
分支结构
package j1;
import java.util.Scanner;
public class bianliang{
public static void main(String[] args){
int value=(int)(Math.random()*90+10);//[10,99]产生随机数,公式[a,b]:(int)(Math.random()*(b-a+1)+a)
Scanner scan=new Scanner(System.in);
System.out.println("请输入彩票号码");
int num=scan.nextInt();
int a1=num/10;
int a2=value/10;
int b1=num%10;
int b2=value%10;
System.out.println("今天的彩票号码为"+value);
if(num==value){
System.out.println("奖金为10000美元");
}
else if(a1==b2&&b1==a2){
System.out.println("奖金为3000美元");
}
else if(a1==a2||b1==b2){
System.out.println("奖金为1000美元");
}
else if(a1==b2||b1==a2){
System.out.println("奖金为500美元");
}
else{
System.out.println("彩票作废");
}
}
}
switch结构中的表达式,只能是如下6种数据类型之一:byte,short,char,int,枚举类型,String类型
case只能声明常量,不能声明范围。
default是可选的,位置可以是任意的
如果switch case中的多种情况结果一致,可以考虑合并
循环结构
循环
①初始化条件
②循环条件,为boolean类型
③循环体
④迭代条件