运算符
运算符是一种特殊符号,用来表示数据的运算、赋值和比较等。
java中的运算符可分为一下几种:
1.赋值运算符
2.算术运算符
3.比较运算符
4.逻辑运算符
5.位运算符
6.三目运算符(不是三目童子!)
赋值运算符:
java的赋值运算符用作与为变量指定变量值,赋值预算符 符号是 "=" ;
这段程序要从右向左看,计算机是先计算出右边数据,再给左边赋值!
算术运算符:
java的算术运算符比较好理解, 加(+/++)、减(-/--)、乘(*)、除(/)、求余(%)
/** * 运算 * @author GMZ * */ public class Computations { public static void main(String[] args) { //这一步先不管 Computations c = new Computations(); //声明并给变量赋值 double num_a = 5.2; double num_b = 3.1; System.out.println(c.plus(num_a,num_b));//相加 8.3 System.out.println(c.reduce(num_a,num_b));//相减 2.1 System.out.println(c.except(num_a,num_b));//除 大约 1.7 System.out.println(c.ride(num_a,num_b));//乘 16.12 System.out.println(c.remain(num_a,num_b));//取余 2.1 } /** * 求和 "+" 号运算符 * @param num_a * @param num_b * @return */ public double plus(double num_a,double num_b){ double sum = 0; //相加 并获得结果,赋值与sum sum = num_a + num_b; return sum; } /** * 减 "-" 号运算符 * @param num_a * @param num_b * @return */ public double reduce(double num_a,double num_b){ double resultNum = 0; //相减 并获得结果,赋值与resultNum resultNum = num_a - num_b; return resultNum; } /** * 除 "/" 号运算符 * @param num_a * @param num_b * @return */ public double except(double num_a,double num_b){ double resultNum = 0; //相除 并获得结果,赋值与resultNum resultNum = num_a / num_b; return resultNum; } /** * 乘 "*" 号运算符 * @param num_a * @param num_b * @return */ public double ride(double num_a,double num_b){ double resultNum = 0; //相乘 并获得结果,赋值与resultNum resultNum = num_a * num_b; return resultNum; } /** * 取余 "%" 号运算符 * @param num_a * @param num_b * @return */ public double remain(double num_a,double num_b){ double resultNum = 0; //取余 并获得结果,赋值与resultNum resultNum = num_a % num_b; return resultNum; }
其实还有两个比较常用的,也就是自加与自减:
/** * 运算Demo * @author GMZ * */ public class Computation { public static void main(String[] args) { int num_a = 5; int num_b = 2; System.out.println(num_a++);// a 自加 结果6 ++在后 System.out.println(++num_a);// a 自加 结果6 ++在前 System.out.println(num_b--);// b 自减 结果1 ++在后 System.out.println(--num_b);// b 自减 结果1 ++在前 // ++ 与 -- 同理 int resultNum = 0; //这个是 a先执行自加(++) 然后与b 相加 resultNum = ++num_a + num_b; System.out.println(resultNum); // 结果为 8 //这个是 a先与b执行相加 然后进行自加 resultNum = num_a++ + num_b; // 结果为 8 } }
比较运算符:
java中的比较运算符与常见的比较符大多一样(除了相等)。>(大于)、<(小于)、 ==(等于)、 >=(大于等于)、 <=(小于等于)、 !=(不等)
逻辑预算符:
逻辑预算符 包括有 或("||" / "|")、与("&&" / "&")、非("!")以及异或("^");
一般逻辑运算符是和比较运算符一起用的,||与|的区别 和 &&与&的区别一样,后者不短路,简单来说 例:一个表达式(1 > 2 && 1 < 5 )和(1 > 2 & 1 < 5)其最后的作用是一样的,但是前者第一个条件也就是1>2不 成立,为false时 前者则不在去运算后面的1<5 而后者则是不管前面条件成立与否,一样计算后面的表达式 及1<5,但是结果一样。具体运用场景在以后会慢慢掌握。
位运算符:
位运算符在这里不多讲,因为运用的不多,有兴趣的可以留言,人多的话,我单独拿出来一期做位运算符,这里就知道它是可以算术运算符和赋值运算符结合,从而可以扩展为强大的运算符。
三目运算符:
三目运算符的语法为 (expression) ? if-true-statement : if-false-statement 这样看比较乱 直接 上代码
三目运算符在工作中使用的还是比较多的(当然也可以被替代),三目还有更复杂的比如三目中的三目,多重三目。有兴趣可以自己敲一下
在运算符这里,有几个小知识点,
不要把一个表达式写的太复杂,第一是不便于自己去维护,更不便于别人去读你的代码,如果是一个很负责的表达式,你可以拆开来写,尽量简化
不要以来运算符的优先级去去控制表达式执行顺序,尽量使用()去控制它的执行顺序。下面附上运算符的执行顺序表以上到下等级也是如此
流程控制
先来说说流程控制吧,不管哪种语言都是有流程控制的,而且都会提供两种基本控制结构:分支结构和循环结构。
简单来说:分支结构就是,我今天吃了早饭 就去上学,没吃就不去。吃或者没吃就是条件,去或者不去就是结果,根据条件去选择结果。
分支结构:
/** * 流程控制 * @author GMZ * */ public class Control { public static void main(String[] args) { int a = 20; int b = 10; //第一种 /* *if(logic expression) *{ * statement.. *} */ if(a > 30){ //打印一句话 System.out.println("假如a大于30我就执行了!"); //可是表达式 a>30 返回的结果是false 所以这句话并没有执行 } //第二种 /* *if(logic expression) *{ * statement.. *} else { * statement... *} */ if(a > 30){ //打印一句话 System.out.println("假如a大于30我就执行了!"); //可是表达式 a>30 返回的结果是false 所以这句话并没有执行 } else { //打印一句话 System.out.println("假如a大于30不成立(即返回值是false时)我就执行了!"); //这个时候就执行了这句话 } //第三种 /* *if(logic expression) *{ * statement.. *} else if(logic expression) { * statement... *}....后面可以添加无数个else if() */ a = 45; if(a > 20){ System.out.println("当a大于20小于等于40时,我执行!"); }else if(a > 40){ System.out.println("当a大于40小于等于60时,我执行!"); }else if(a > 60){ System.out.println("当a大于60时,我执行!"); } } }
下面是switch分支语句,
switch语句由一个控制表达式和多个case标签组成,与if语句不同的是,switch语句后面的控制表达式的数据类型只能是byte、short、char、int四种整数类型,枚举类型和java.lang.String类型(从java7版本后才允许String),不能用boolean类型。
语法:
switch(expression)
{
case condition1:
{
statement(s)
break;
}
case condition2:
{
statement(s)
break;
}
case conditionN:
{
statement(s)
break;
}
Default:{
Statement(s)
}
}
看着很烦、冗长,直接来代码把。
//switch结构 String index="1"; switch(index){ //这里的index 可以是 String、 byte、short、char、int类型的变量 case "1": //第一个条件 System.out.println("这里写匹配到\"1\"后,所做的操作!"); break; case "2": //第二年个条件 System.out.println("这里写匹配到\"2\"后,所做的操作!"); break; case "3": //第三个条件 System.out.println("这里写匹配到\"3\"后,所做的操作!"); break; default: System.out.println("当index的值不存在任何一个条件可以匹配时,走这里!"); break; }
循环结构:
//while循环 while(1==1)//这里写while循环表达式,如果返回值是true则进入循环体,反之则程序向下执行 { System.out.println("如果表达式成立,我就打印啦!(现在1==1肯定是true 所以当前是无限循环!)"); } // do while循环 do { System.out.println("无论如何我肯定执行一次!后判断表达式的结果是否是true,如果是则继续执行"); System.out.println("与while不同的是,do while 是一定执行一次。后面与while 无异"); } while (1==1); //for循环 //for循环的表达式与其他两个不同 //下面三个用分号分开的分别是:初始条件、循环条件、循环迭代语句 for (int i = 0; i < 5; i++) { System.out.println("我们的初始条件是0,每次我打印一次,i就会自加1,直到i>=5的时候,这个循环体 就会停止循环"); } //那个while与do while也可以迭代,但是迭代是在循环体内 int index_num=1; while(1==1) { index_num++; //这段代码意思是循环每执行一次,num就自加1 直到 num>=5的时候跳出这个循环体, //这里我们用了一个break关键字,去跳出循环体 do while与这个相同。 //break的意思可以理解为,代码执行到它那里,它会跳出当前的循环体,关键词当前的循环体!!!!!! if(index_num>=5){ break; } //还有个关键字也是与循环体有关的 //continue关键字的意思是,当代码执行到它,循环回到开头,即回到表达式处,继续计算表达式,继续执行代码块 //也就是它是跳过,它下面的代码继续执行循环体。 //break则是直接跳出循环体,不在执行当前循环体。 if(index_num == 3){ continue; } System.out.println("================>我执行啦!!"); }
数组
数组是编程语言中最常见的一种数据结构,来用于储存多个数据。每个数组元素存放一个数据。通常可通过数组元素的索引(也可以理解为下标)来访问数组元素,包括为数组的元素赋值和取出数组元素的值。
其实可以理解数组是一种数据类型,因为java中的数组要求数组的元素具有相同的数据类型,所以呢在一个数组中元素的数据类型是唯一的。也就说一个数组中只能储存一种数据类型的数据,不能储存多种数据类型。
本来这期是打算把数组做完的,但是看到了数组可能用到了面对对象的思想,更是用到的了java的继承与多态,所以放到下一期专做一期。
(最近可不是犯懒啊,是有些事耽搁了,而且带不了电脑。过两天可能就比较忙了,要新做一个公众号开发 - -! 加油!)
来源:https://www.cnblogs.com/Cgosling/p/9819812.html