学习内容:
1.运算符:
自增、自减
int a = 4; int b = 3; a++;//先运算后加,如果有赋值、比较之类的运算,会先把a当前值进行赋值、比较,然后自身+1,如果没有参与运算,则直接自身+1 b--; ++a;//先加后运算,自身先+1,然后+1的这个值进行赋值、比较之类的运算 --b; System.out.println(a); System.out.println(b);
2.赋值
int d = 5; int e = 7; System.out.println(d=e); System.out.println(d==e); //注意,由于上方d的值已经被赋予e的值,所以返回true
3.逻辑运算
长路、短路与运算
int i = 2; System.out.println(i==1 & i++ == 2); System.out.println(i); //长路与,无论第一个表达式真假与否,第二个表达式都会被运算,输出i=3 int j = 2; System.out.println(j==1 && j++ ==2); System.out.println(j); //短路与,表达式一为假,第二个表达式不运算,输出j为2,如果表达式1为真,都为真,都会执行
长路、短路或运算
int i = 2; int j = 2; System.out.println(j==1 || j++ ==2); System.out.println(j);//表达式1为假,但表达式2为真,表达式2会被执行,输出j为3
综合运用:
int x = 1,y = 1; if(x++==2 & ++y==2) //假 真 假 if内语句不执行 但是++y执行,同时x++执行 { x =7; } System.out.println("x="+x+",y="+y); //x=2,y=2 int x = 1,y = 1; if(x++==2 && ++y==2)//假 真 假 if内语句不执行 ++y不执行 { x =7; } System.out.println("x="+x+",y="+y); //x=2,y=1 int x = 1,y = 1; if(x++==1 | ++y==1) 真 假 真 ++y执行 if内语句执行 { x =7; } System.out.println("x="+x+",y="+y); //x=7,y=2 int x = 1,y = 1; if(x++==1 || ++y==1) 真 假 真 ++y不执行 y=1 x=7 { x =7; } System.out.println("x="+x+",y="+y); //x=7,y=1
4.异或运算
相同为false,不同为true
boolean a = true; boolean b = false; System.out.println(a^b); //true System.out.println(a^!b); //false
5.Scanner类
import java.util.Scanner; public class Demo{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("请输入一个数字:"); int i = s.nextInt(); System.out.println("您输入的数字是"+i); String t = s.next(); System.out.println("你输入的文字是"+t); s.close(); } }
6.Random类
import java.util.Random; class Test { public static void main(String[] args) { Random r = new Random(); //随机数,取值范围左闭右开 int z = r.nextInt(100); //随机整数 double db = r.nextDouble(10); //随机小数 } }
7.switch
JAVA中的switch语句可接收的参数有 byte short int char类型,
1.5及以后版本可接收enum(枚举)类数据
1.7及以后版本可接收String类数据
总结:byte short int char enum String
8.for循环
class Test { public static void main(String[] args) { for(int i = 0;i<5;i++){ System.out.println(""); for(int j=0;j<i+1;j++){ System.out.print("*"); } } } }
PS:上例中的双层for循环,外层循环控制行,内层循环控制列,输出的效果类似于表格,利用该方法可以实现很多输出效果:
例:
class test { public static void printn(){ int cou = 0; for(int i=1;i<=100;i++){ if(i%10==9|i/10==9){ }else{ if(i<10){ System.out.print(i+" "); }else{ System.out.print(i+" "); } cou++;// for语句内定义一个变量用来计数,每输出一个满足条件的数,该变量+1 if(cou%5==0){ System.out.println(""); } } } } public static void main(String[] args) { printn(); } }
for循环执行顺序:
for(语句1;语句2;语句3){
执行语句;
}
语句1>>语句2,若为true>>执行语句>>语句3>>语句2,若为true,执行语句......>>语句3>>语句二,false,循环结束
PS while语句的使用技巧
利用while语句可以实现某些功能的控制台循环执行的效果,例如:
while(true){ System.out.println("-------库存管理-------"); System.out.println("1.查看库存清单"); System.out.println("2.修改库存数量"); System.out.println("3.退出"); System.out.println("请输入要执行的操作序号:"); int select = se.nextInt(); switch(select){ case 1: CheckInventory(mba,tp,asus); break; case 2: ChangeInventory(mba,tp,asus); break; case 3: se.close(); return; default: System.out.println("操作号输入错误,请重新输入:"); } }
当用户输入错误时,可以实现Scanner的再次调用,并且使得switch语句再次进行判断,
另外用户可在执行完1或2的操作时,可选则执行其他的操作,
直到用户选择退出。
利用标签结束循环:
给循环标记一个标签 loop 序号,打断时 break loop 序号,可以打断指定的循环,下里面的代码就是在内层循环里打断外层循环。
class Test { public static void main(String[] args) { loop1: for(int i = 0;i<5;i++){ for(int j=0;j<i+1;j++){ if(j%2==0){ break loop1; } } } } }