一、运算符
1 算术运算符:
+
-
*
/:整数相除,会向下取整
%
--:自减一
++:自加一
2.关系运算符
<
<=
>
>=
==
!=
3.逻辑运算符
&:与,两个条件必须同时满足,且第一个条件不满足也会判断第二个条件是否满足
&&:短路与,两个条件必须同时满足,且第一个条件不满足判断结束,不会进行第二个条件的判断
|:或
||:短路或
!:非
4.赋值运算符
=
-=+=
*=
/=
%=
分析下面两个的区别
a = a+b;
a +=b;//表示a = (a的类型)(a+b);
可能会损失精度
5.位运算符
^:位异或
~:位
&:按位与
|:按位或
>> 1 二进制右移一位,
<< 1
6.条件运算符
布尔表达式?表达式1 : 表达式2
7.字符串连接运算符
+
二、其他补充知识
1.输入语句
public class A{
public static void main(String[] args){
java.util.Scanner s = new java.uitl.Scanner(System.in);
int a = s.nextInt();
}
}
import java.util.Scanner;
public class A{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int a = s.nextInt();
}
}
输入产生异常情况
public void main(String[] args){
Scanenr s = new Scanner(System.in);
while(true){
if(s.hasNextInt()){
s.nextInt();
break;
}
//如果上面输入的不是一个整数,同时没有一条语句去接收用户输入的值,那么程序会陷入死循环
s.next();//接收以下不正确的值
}
}
2.产生随机数的两种方式
//1.
import java.util.Random;
Random r = new Random();
int a = r.nextInt(4); 获取0到3的随机整数
// 2. 获取包括最大值与最小值之间的随机整数
int a = (int)(Math.random()*(最大值-最小值))+最小值;
3.处理日期的方式
//1. 获取当前日期
//1)
new Date;
//2)
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentTime = dateFormat.format(new Date);
//3)
System.currentTimeMillis();//时间戳
dateFormat.format(System.currentTimeMillis());
//4)
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
三、控制语句
1 分支语句
分支语句有几种?
if语句 if, if-else, 多重if:if-else if, 嵌套if: if(){ if-else }
switch语句
switch(值){//值:只支持int和 String(since:JDK7) //也可以传byte short char类型的变量,自动转换成int类型 case 1: ;//没有break,会出现穿透现象 case 2:case 3:case 4: java语句; break;//合并switch语句 default: }
比较switch和多重if选择结构
相同点:都是用来处理多分支条件结构的
不同点:
switch选择结构,只能处理等值判断的情况,而且条件必须是整形变量或者字符型变量
多重if选择结构,没有switch选择结构的限制,特别适合某个变量处于连续区间时的情况
//年龄要求[0-150],其他值是非法之
public class A{
public static void main(String[] args){
java.util.Scanner s = new java.util.Scanner(System.in);
int age = s.nextInt();
String str = "不合法";
if(age>=0 && age<=5)str = 婴儿;
else if(age>=6 && age<=150)str = "老年";
System.out.println(str);
}
}
2 循环语句(使代码的复用率提高)
for循环:语法, while循环 do while循环 什么时候使用for循环?什么时候使用while循环? 当已经知道循环次数的时候,使用for循环 当循环次数需要循环体来进行识别判断的时候,使用while循环 当循环前,需要先执行一次的时候,使用do-while循环 for循环:注意for(初始化;布尔表达式;更新){ //代码语句 } 三个表达式语句都可以省略,但省略表达式二时需要从循环语句内结束循环,否则则为死循环
用在循环单当中,会让离他最近的循环终止掉; 终止指定循环用法:first:for(){ break first; } a:for(){ b:for(){break a;} }continue:终止本次循环
3 转向语句
break:可以直接结束当前循环,也可以选择终止那个循环,只要使用 标记符号对 循环关键字继续宁标记,a:for(){} / break a; continue:结束本次循环,不影响后续循环 return:两种书写方式return; return 值;return语句后面不能在写语句}
使用for循环,实现所有奇数求和?for循环嵌套实现九九乘法表?
//计算1000以内所有不能被7整除的整数之和?
for(int i=0;i<=1000;i++){
if(i%7!=0){
sum +=i;
}
}
System.out.println(sum);
//1+2-3+4-5....+100;
int sum = 1
for(int i=2;i<=100;i++){
if(i%==2)sum+=i;
else sum-=i;
}
//输入一个正整数,计算该数的阶乘;
public class A{
public static void main(String[] args){
int sum = 1;
java.util.Scanner s = new java.util.Scanner(System.in);
int num = s.nextInt();
//让值是正整数
for(;num<1;){
System.out.println("请重新输入");
num = s.nextInt();
}
for(int i = 1;i<=num;i++){
sum *=i;
System.out.println(sum);
}
}
}
//接收一个正整数,判断是否是质数?
public class A{
public static void main(String[] args){
//接收一个正整数:
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.println("请输入一个正整数");
int num = s.nextInt();
for(;num<1;){
System.out.println("请重新输入");
num = s.nextInt();
}
//判断是否是质数
//质数是指在大于1的自然数中,除了1和本身之外不再与其他因数
int sum =0;
for(int i=2;i<num;i++){
if(num%i==0){System.out.println(num+"不是质数");return;}
}
System.out.println(num+"是质数");
}
}
//优化:判断是否是质数
boolean flage = true;
int sum =0;
for(int i=2;i<num;i++){
if(num%i==0){System.out.println(num+"不是质数");flage = flase; break;}
}
if(flage)System.out.println(num+"是质数");
else System.out.println(num + "不是质数");
//实现:*号和空格组成的各种三角型
//小明每天得到2.5元,每当这一天是存钱的第五天或者五的倍数的话,他就会花掉6元,经过多少天才能存够100元?
int sum = 0;
int day = 0;
for(;sum<=100;){
sum += 2.5;
day +=1;
if(day%5==0)sum-=6;
}
System.out.println(day);