1.运算符
1. 算术运算符:用来执行基本的数学运算,包括加法(+)、减法(-)、乘法(*)、除法(/)等。
2. 关系运算符:用来比较两个值的关系,包括相等(==)、不相等(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)等。
3. 逻辑运算符:用来对布尔类型的值进行逻辑运算,包括与(&&)、或(||)、非(!)等。
4. 赋值运算符:用来给变量赋值,包括简单赋值(=)、加法赋值(+=)、减法赋值(-=)等。
5. 自增自减运算符:用来对变量进行自增或自减操作,包括前缀自增(++i)、后缀自增(i++)、前缀自减(--i)、后缀自减(i--)等。
6. 位运算符:用来对二进制数据进行位运算,包括按位与(&)、按位或(|)、按位异或(^)等。
“&”和“&&”的区别: 单&时,左边无论真假,右边表达式都进行运算; 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算 |”和“||”的区别同理,||表示:当左边为真,右边不参与运算。 建议:开发中,推荐使用 && ||
例如:
7. 条件运算符:用来根据条件选择不同的值,格式为 condition ? value1 : value2,如果条件为真则返回value1,否则返回value2。
8. instanceof运算符:用来检查对象是否是某个类的实例,格式为 object instanceof Class。
9.位运算符:
1. 左移(<<):将操作数的所有位向左移动指定的位数,右侧空出的位置用0填充。
2. 右移(>>):将操作数的所有位向右移动指定的位数,对于有符号整数,最左边的位用符 号位填充;对于无符号整数,最左边的位用0填充。
3. 无符号右移(>>>):将操作数的所有位向右移动指定的位数,无论最左边的位是0还是1,都用0填充。
例如:
2 . 三种循环结构对比
三种循环结构都具有四个要素:
1.循环变量的初始化条件
2.循环条件
3.循环体语句块
4.循环变量的修改的迭代表达式
从循环次数角度分析:
do-while循环至少执行一次循环体语句。
for和while循环先判断循环条件语句是否成立,然后 决定是否执行循环体。
如何选择 :
遍历有明显的循环次数(范围)的需求,选择for循环
遍历没有明显的循环次数(范围)的需求,选择while循环
如果循环体语句块至少执行一次,可以考虑使用do-while循环
本质上:三种循环之间完全可以互相转换,都能实现循环的功能
3.方法的引入
Java中的方法类似于其它语言的函数,方法是解决一类问题步骤的组合,表示一种功能和行为.将功能封装为方法的目的是,可以`实现代码重用,减少冗余,简化代码`Java里的方法`不能独立存在`,所有的方法必须定义在类里。
方法声明格式:
[访问权限修饰符 修饰符...] [返回值类型] 方法名(形式参数类型 参数名)
{
Java语句;... ... ...
[return 返回值;]
}
•修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
•形式参数: 在方法被调用时用于接收外界输入的数据。
•返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。
•方法体:方法体必须有{}括起来,在{}中编写完成方法功能的代码•返回值:方法在执行完毕后返还给调用它的环境的数据。
•实参:调用方法时实际传给方法的数据。
• Java语言中使用下述形式调用方法:
类名/对象名.方法名(实参列表)
实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配, return 语句终止方法的运行并指定要返回的数据。
return语句
return语句用于从当前执行的方法中退出, 返回到调用该方法的语句处继续执行。
有两种格式:
return 值; //将值返回,方法必须声明有返回值
return;//不返回任何值,表示终止方法执行,可以在声明为void的方法中使用
例如:这是一段记录家庭收支明细的功能代码
import java.util.Scanner;
public class day2 {
static Scanner scanner=new Scanner(System.in);
static int a = 1;
static int money=1000;//家庭初始资金
static String s1=" ";//收入的金额和具体来源
static String s2=" ";//支出的金额和具体支出原因
public static void main(String[] args) {
out:while (a == 1) {//此处out与后方break的out配合可以做到退出程序的功能终止死循环,a==1可以让该程序死循环,多次执行选择功能
day2.print();//调用菜单功能
int n= scanner.nextInt();
switch(n)//n选择功能
{
case 2:
day2.shouru();//调用计算收入的功能
break;
case 1:
day2.mingxi();//调用明细的功能
break;
case 3:
day2.zhichu();//调用支出的功能
break;
case 4:
break out;//终止程序功能
}
}
}
public static void print(){//菜单
System.out.println("---------家庭收支情况表---------");
System.out.println("1.收支明细");
System.out.println("2.登记收入");
System.out.println("3.登记支出");
System.out.println("4.退 出");
System.out.println("选择功能:");
}
public static void shouru(){//计算收入功能
int sr;
String ly;
System.out.println("本次收入");
sr= scanner.nextInt();
System.out.println("收入来源:");
ly=scanner.next();
money+=sr;
s1+=ly+":"+sr;
}
public static void mingxi()//打印明细的功能
{
System.out.println("资金:"+money);
System.out.println("收入:"+s1);
System.out.println("支出:"+s2);
}
public static void zhichu()//支出计算功能
{
int zc;
String fm;
System.out.println("支出钱币:");
zc= scanner.nextInt();
System.out.println("支出方面:");
fm= scanner.next();
money-=zc;
s2+=fm+":"+zc;
}
}
运行结果样例: