活动地址:CSDN21天学习挑战赛
在Java里一共有六中运算符:
算术运算符(+ - */)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等
基本四则运算符:加减乘除模(+ - * / %)
加减乘的使用和需要注意的地方和C语言都是差不多的,这里需要注意的只有/
和 %
/
除法 和 %
取模
在二个数相同为 int
类型时进行/
除法 运算,得出的结果如果是小数,那么会向下取整,输出整数
例如:
做除法和取模时,右操作数不能为0
否则编译器会报错
% 不仅可以对整形取模,也可以对double类型取模,但是没有意义,一般都是对整形取模的
使用的常景较少
+= -= *= %=
这些运算符会运算结束后把结果赋值给左操作数
注意:
在进行增量运算符
时,使用类型大于赋值的类型时,不用进行强行转换,编译器会默认进行转换
int a = 10;
long b = 20;
a += b; 默认进行类型的转换,不需要强行转换比如: a +=(int) b;
System.out.println(a);
前置++ 和 后置++ 或 前置-- 和 后置-- 都是给变量进行 +1 或 - 1 的
需要注意的是如果 变量本身进行++ 或者 – 再赋值给变量本身时结果就和C语言的不一样了
例如:
这是需要注意的地方
关系运算符有六个:== != < > <= >=
,但是使用的方法是和C语言一样的,但是返回的结果是不一样的
关系运算符计算结果只有二种: true
或者 false
例如:
逻辑运算符主要有三个分别是:
逻辑与 &&
、逻辑或 ||
、逻辑非 !
逻辑运算符最后的结果一定都是布尔类型(boolean)
逻辑与 &&
:全部的条件都为真(true)时,最后的结果才是 真
二个表达式都必须是 布尔(boolean)
表达式
如果第一个表达式为假,之后就不会执行第二个表达式
逻辑或 ||
:只要其中一个条件为真(true)时,最后的结果才是 真
如果第一个表达式为真,第二个就不会执行
逻辑非 !
只有全部条件为假时(false),结果才是 假,其他情况都是真
这里就不能用变量直接进行逻辑运算,会报错
正确的使用:
&
和|
如果两侧的表达式结果为 boolean 时, 也表示逻辑运算计算的是整个表达式
,所以需要区别开来& 按位于
比如:
可以用来求一个数中二进制中 1 的个数
| 按位或
比如:
可以用来求一个数中二进制中 0 的个数
位运算符一·共有 三个:
<<左移操作符
>>右移操作符
>>> 无符号右移
三个位运算符都是按照 二进制位
进行操作的
<<左移操作符
左移操作符相当于最左侧位的一个数不要了, 最右侧补 0
左移 1 位, 相当于原数字 2. 左移 N 位, 相当于原数字 2 的N次方
>>右移操作符
最右侧位的一个数不要了, 最左侧补符号位(正数补0, 负数补1
)
右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方
>>> 无符号右移
最右侧位的一个数不要了, 最左侧补 0,正负数的结果的是补 0
逻辑控制一共有三种:
顺序结构、分支结构、循环结构
顺序结构是从上往下,一条一条的执行,没有加判断或者循环条件的话,正常都是顺序结构
例如:
这是输入和输出
public static void main(String[] args) {
Scanner n = new Scanner(System.in);
int a = n.nextInt();
System.out.println(a);
}
比如:一个游戏有不同的结果,每种结果都是由一个一个选择来组成的,每个选择就是分支
分支一共有 if
和 switch
- if
语句是用来判断条件是真还是假,通常和 else
一起使用,也可以单独使用
if
的判断表达式都是布尔表达式
例如:
判断是偶数还是奇数
public static void main(String[] args) {
int num = 10;
if (num % 2 == 0) {
System.out.println("num 是偶数");
} else {
System.out.println("num 是奇数");
}
}
switch
语句switch
是先计算表达式的值,再和case
依次比较break
时结束default
例如:
public static void main(String[] args) {
int day = 2;
switch(day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入有误");
break;
}
}
需要注意:
switch
只能使用以下的类型
基本数据类型:byte、char、short、int
引用类型:String常量串、枚举类型
switch
中不能使用的类型是:long float double boolean
循环结构是当循环条件为 true
时进行循环,条件为 false
就停止循环
循环结构有 for 和 while 二种
while
循环while
循环是条件为 true
时,不断的执行代码,直到条件为 false
停止循环或者是遇到 break
和 continue
public static void main(String[] args) {
int a = 5;
while(a >= 0) {
System.out.println(a);
a--;
}
}
for
循环for
循环的语法:for(初始化表达式;布尔表达式;循环条件递增表达式)
{
语句块;
}
例如:
循环打印 1 到 10
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
Java 的输入一共有三种语法:
System.out.println("10");
System.out.print("输出不换行");
Systen.out.printf("%s", "这是格式化输出");
输出完内容后并且换行
输出完内容后不进行换行
格式化输出
Scanner 读取字符串/整数/浮点数
Scanner
类可以生成一个解析基本类型和字符串的文本扫描仪
我们可以通过 Scanner
类来获取从键盘中输入的数值
例如:
nextInt
next
next
是读取一个字符串,中间不能出现空格 // 输入字符串
Scanner scanner = new Scanner(System.in);
String name = scanner.next();
System.out.println("姓名" + name);
nextLine
nextLine
是读取的是一行的,允许出现空格//读取一行的字符
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
System.out.println("姓名" + name);
循环输入
例如:循环输入一个整数
结束循环是 CTRL + D
最后 Scanner
在Java 里认为它是一个资源,所以需要和文件一样打开后要进行关闭
关闭 Scanner
变量名.close();
例如:
scanner.close();
在 Jav 生成随机数是使用 Randow
例如:
public static void main(String[] args) {
Random random = new Random();
int n = random.nextInt(100)+1;
System.out.println(n);
}
结果:
public class JavaEight {
public static void main(String[] args) {
//设置随机数
Random random = new Random();
// 从键盘获取数值
Scanner a = new Scanner(System.in);
// 设置生成随机数的范围
int n = random.nextInt(100)+1;
while(true) // true 是真,没有达成条件无限循环
{
System.out.println("输入要猜的数字:");
//输入要猜的数字
int x = a.nextInt();
if(x < n) {
System.out.println("猜小了");
}
else if(x > n) {
System.out.println("猜大了");
}
else
{
System.out.println("猜对了");
break;
}
}
//关闭 Scanner 资源
a.close();
}
}
Java的基础语法都算是比较简单,由于学过C语言,所以都是简略的描述一下,并没有详细的讲解
内容都是大同小异