Java运算符、控制语句

一、运算符

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);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值