一、运算符
运算符有算数、关系、逻辑、赋值、字符串连接以及条件运算符。
1.1算数运算符:
算数运算符有:+(加)、-(减)、*(乘)、/(除)、%(取模)、++(自增)、--(自减),这里我们对加减乘都比较了解了,我们只需要注意/(除)、%(取模)、++(自增)、--(自减)就行了。
/(除):在我们做/(除)运算时,当除数与被除数都为整数时,得到结果为整数,不论结果小数点后的数是多少我们统统舍弃;当除数与被除数有浮点数时,我们得到的结果就为浮点型,不为整型。
%(取模):通俗的讲就是我们做除法运算所得到的余数 如:5%2,我们得到的就是1;当可以被整除时,如:4%2就得到余数0,我们可以通过这一步进行判断,一个数是否被另一个数整除掉,即余数为0。
++(自增)、--(自减):就是在本身的基础上进行加1或者减1的操作,但有一点需要注意,++与--是单独使用还是联合使用,当联合使用时他们的位置是在前还是在后。
当我们单独使用时:
当我们联合使用时就需要注意了,当++在变量的后面时,先把a++看成一个整体,它的值为a本身的值,等值赋值给了c以后,a再进行自己的自增运算,即先用后加;当++在变量前面时,我们同样看成一个整体,但++b的值不在是b了,而是b+1并且把这个值赋值给 了d之后,b再进行自己的自增运算;--(自减)运算同样如此。
1.2关系运算符:
关系运算符有 >(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于),我们要知道关系运算符为boolean数据类型,关系成立则为true,不成立则为false
1.3逻辑运算符:
逻辑运算符也是boolean型,其有三种即&&(逻辑与)、||(逻辑或)、!(逻辑非)。
&&(逻辑与):两边真则为真(true),否则结果为假(false),并且当第一个判断条件为false时,则发生短路(后面的不执行了)
||(逻辑或):短路或 有真则为真,见true则为true,即第一个为true时,则发生短路(后面的不执行了)
!(逻辑非):即取反,非真则假,非假则真
1.4赋值运算符:
赋值:=、+=、-=、*=、/=、%=
简单赋值运算符:=
扩展赋值运算符:+=,-=,*=,/=,%=
1.5 字符串连接符:
就一个符号:+
若两边为数字,则做加法运算
注意:任何类型的数据与字符串连接,结果都会变为字符串型
1.6条件运算符:
条件运算符为:判断条件?数1:数2;
执行过程:
整个条件运算是有值的,它的值要么是?号后的数1,要么是:号后的数2
计算boolean的值:若为true,则整个表达式的值为?号后的数1 ,若为false,则整个表达式的值为:号后的数2
二、分支结构
1.if结构、if...else结构、if...else if结构
首先我们要知道正常的程序是顺序运行的,就是说从上到下,从左到右运行的,如果我们想要改变这种一成不变的运行方式就需要用到相关的语法结构,分支结构就是其中一种,分支结构就是通过对条件的判断来选择运行的,如果条件满足则运行相关的语句块,不满足则跳过。
1).if结构:通俗来讲就是一条路
2).if...else结构:2条路
3).if...else if结构:多条路
2.switch...case结构:
switch...case结构是一个特殊的分支结构,它与if结构有所区别,它有多条路,当我们进行判断case的值与switch一致时,就进行执行case后的语句,并且我们要知道当case语句执行完了之后,没有遇见break(这是一个关键字,我们先了解)时,会继续执行把剩下的其他case语句块,直到遇到break,或者执行到最后;所以我们可以看出break在这的作用是跳出当前的语法结构。
优点:效率高、结构清晰
缺点:只能对整数判断相等
break:跳出switch
当输入数据为1的时候,因为有break的存在,会只输出存款业务,如果没有break,那么我们会得到存款以及取款业务的结果。
三、循环结构
首先我们要知道循环结构是干什么的,如果我们反复多次的执行同一段代码呼救可以用到循环结构,循环结构有while结构,do...while结构,for循环结构,要写循环结构我们要知道循环变量是谁,循环条件是什么,循环变量就是整个循环中反复改变的那个数,循环条件是以循环变量为基础的,满足条件我们就行执行循环,不满足就结束循环。
然后我们要知道什么取款用while什么情况用for,当我们知道循环次数的时候我们就可以用for循环,当然我们也可以用while循环,只是在大部分已经知道次数的情况下用for比while好,在不知道次数时可以考虑用while或者do...while。
1.while结构:
我们要注意的就是while循环是先做判断再进行循环,如果判断为false,则while循环结构就一次不会执行,其语法结构如下:
2.do...while结构:
do while结构就是先不进行相关的判断,先执行一次循环体再进行相关的判断,总之就是不论判断是否成不成立都会执行一次,如果判断成立就会继续执行循环体,直到判断条件不满足。
package day04; import java.util.Scanner; //猜数字小游戏 public class Guessing { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = (int)(Math.random()*1000+1); //1到1000之内的 System.out.println(num); //作弊 //300(大),200(小),250(对) System.out.println("猜吧!"); int guess = scan.nextInt(); //1. while(guess!=num){ //2. if(guess>num){ System.out.println("猜大了"); }else{ System.out.println("猜小了"); } System.out.println("猜吧!"); guess = scan.nextInt(); //3. } System.out.println("恭喜你猜对了!"); } }
3.for结构:
for结构的循环道理和while差不多,主要是看它的语法结构:
4.break与continue关键字:
我们首先要知道,Java中有那么一组单词是具有固定意思的,只要是对程序员说出这些词就知道你要表达的意思,不需要更多的描述,见名知义,这就是关键字,我们先学习break,continue这两个关键字。
break的作用是跳出当前循环。
for(int num=1;num<=9;num++){ if(num==4){ //在某种特定条件下,提前结束循环 break; //跳出循环 } System.out.println(num+"*9="+num*9); } /* num=1 1*9=9 num=2 2*9=18 num=3 3*9=27 num=4 */
continue的作用是跳过循环体的剩下的语句而进入下一次的循环,我们看下面代码库看出continue的作用:
//输出9的乘法表,跳过能被3整除的
for(int num=1;num<=9;num++){
if(num%3==0){
continue; //跳过循环体中剩余语句而进入下一次循环
}
System.out.println(num+"*9="+num*9);
}
/*
num=1 1*9=9
num=2 2*9=18
num=3
num=4 4*9=36
num=5 5*9=45
num=6
num=7 7*9=63
num=8 8*9=72
num=9
num=10
*/
//输出9的乘法表,只要不能被3整除的
for(int num=1;num<=9;num++){
if(num%3!=0){
System.out.println(num+"*9="+num*9);
}
}
5.嵌套循环:
就是我们所说的循环里套一个循环,注意了循环最多套4个就已经非常非常的不好了,如果一个题目设计出来套了5层或者5层以上的循环那就是我们的设计思路出现的问题,应重新改过,进行修改,嵌套循环就是:
循环中套循环,常常多行多列时使用,外层控制行,内层控制列
执行规则:外层循环走一次,内层循环走所有次
建议:嵌套层数越少越好,能用一层就不用两层,能用两层就不用三层
break默认只能跳出当前一层循环
public class MultiTable {
public static void main(String[] args) {
for(int num=1;num<=9;num++){ //控制行
for(int i=1;i<=num;i++){ //控制列
System.out.print(i+"*"+num+"="+i*num+"\t");
}
System.out.println(); //换行
}
/*
执行过程:
num=3
i=1 1*3=3
i=2 2*3=6
i=3 3*3=9
i=4 false
换行
num=2
i=1 1*2=2
i=2 2*2=4
i=3 false
换行
num=1
i=1 1*1=1
i=2 false
换行
*/
}
}
那么今天我们就学到这了哦,自这是小白我的个人笔记,如有错误欢迎指正,谢谢各位大佬了。