瞬息 电光石火、转瞬即逝

Java学习笔记-判断与循环语句

2020-12-26
Ko_teiru


慢慢来慢慢来,虽然快到期末就是了

程序的三种结构

顺序结构

就是执行完一条指令后转到下一条的语句,直到程序的末尾,这个没啥好讲的。

选择结构

if语句

根据条件的成立与否,来决定下一条该执行哪条语句或者执行不执行下一条语句。最常见的就是if语句了。
示例:

int a=1,b=2;
if(a>b){    //判断条件为a是否大于b,满足即执行下一条,不满足即放弃
    System.out.println("a大于b");
}
if(a<b){
    System.out.println("a小于b");
}
if…else语句

适用于程序中有分支时,如果判断结果为真,就执行A语句,如果为假,即执行B语句。

if(判断条件){   //满足即执行A
    语句A;
}else{         //反之  执行B
    语句B;
}

注意,单个if…else只适合“非黑即白”的条件,不适合那种有多种可能的,比如a>b,a、b之间不但可以是大于小于,还有可能为等于。这时可以再套娃一个if…else语句来达成效果。

示例:

int x=1,y=2;
if(x>y){        //如果大于
    System.out.println("x大于y");
}else{
    if(x<y){    //如果小于
        System.out.println("x小于y");
    }else{      //不大于不小于只能等于了
        System.out.println("x等于y");
    }
}
switch语句

选择条件很多的时候,除了使用if…else以外,可以尝试使用更加方便的多重选择语句,也就是switch语句。
其使用方法为:

switch(表达式){
    case 选择值1 :语句主体1 ; break;
    case 选择值2 : 语句主体2; break;
    default : 语句主体;
}

示例:

int x=20,y=5;
		char fh='+';    //设置运算符变量“fh”
		switch(fh){     //匹配项为“fh”
			case '+':     //如果为加号,则执行加法
				System.out.println("x"+"+"+"y"+"="+(x+y));
				break;
			
			case '-':     //如果为减号,则执行减法
				System.out.println("x"+"-"+"y"+"="+(x-y));
				break;
			
			case '*':    //如果为乘号,则执行乘法
				System.out.println("x"+"*"+"y"+"="+(x*y));
				break;
			
			case '/':      //如果为除号,则执行除法
				System.out.println("x"+"/"+"y"+"="+(x/y));
				break;
			
			default:       //如果都无法匹配,则输出报错并且自动跳出
				System.out.println("错误/未包含的运算符");
		}

另外switch语句的一些需要注意的地方:来源
1.switch语句选择的类型只有四种: byte ,short ,int,char
2.case 之间与default没有顺序。先执行第一个case,没有匹配的case就执行default。
3.结束switch语句的两种情况,遇到break、执行到switch语句结束的大括号处。
4.如果匹配的case或者default没有对应的break, 那么程序会继续向下执行,运行可以执行的语句, 直到遇到break或者switch结尾结束。(也就是说记得加上break)

int x=3;
switch(x)
{
case 1:     //1.先执行第一个case,未满足
System.out.println("a");    
case 2:     //2.再执行下一个,未满足
System.out.println("b");    
default:    //4.执行default
System.out.println("d");    //5.打印输出"d",但由于没有break,swtich语句继续向下执行
case 4:     //3.执行下一个,未满足。全部case未满足即执行default
System.out.println("c");    //6.打印输出"c"
}
三目运算符

之前有提到过的一种可以判断和选择结果的运算符,格式如下:
变量 =条件判断?表达式1:表达式2;
大概可以看成(虽然并不准确):

if(条件判断){
    变量-->表达式1;
}else{
    变量-->表达式2;
}

三目运算符在简易判断中十分简单,只需要三个符号便可以搞定,但因为是一个运算符,所以运算必须有一个结果。具体情况具体分析吧。
示例:

int x=1,y=2;
x=x>y?x-y:x+y;      //如果x比y大,则x-y,如果比y小,则x+y

也可以套娃求三个数中的最大值:

int a=102,b=20,c=9,max;
max=(max=a>b?a:b)>c?max:c;

循环结构

根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落就成为循环主体。
循环结构主要有三种,一种是while循环,还有一种是do…while,最后一种是for循环,它们稍有不同。但是,无论是哪种循环语句,都要防止死循环的产生。

while循环
while(循环条件判断){    //先判断,再执行
    执行语句1;
    执行语句2;
    ……;
    循环条件更改    //对循环条件进行修改,以便跳出循环
}

示例:

int y=0, x = 0;
while (x <= 10) {   //x大于等于10时跳出循环
	y += x;
	x++;    //x自增
}
do…while循环

do…while和while其实差不多,但是do…while是先执行一次循环主体再进行循环的判断,也可以想成一个是“有罪再杀”,另一个则是“先斩后奏”。

Do while至少会执行一次循环体

do{
    语句1;
    语句2;
    ……;
    循环条件改变;
}while(循环条件判断);

示例:

int x=0,y=0;
do{
    x +=y;  //累加
    y++;    //自增
}(y<=10);
for循环

上面两种循环操作时不一定需要知道循环的次数,而如果已经明确知道循环次数的话,那么就可以使用for循环。

for(赋值初值;判断条件;赋值增减量){   //三个值中间用分号分开
    语句1;
    语句2;
    ……;
}

示例:

int x=0;
for(int y=1;y<=10;y++){
    x+=y;
}

break与continue语句

break

break语句可以强迫程序终中断循环,当程序运行到break语句时,即会离开当前所在的循环,继续执行下一个语句。如果break嵌套在循环中的内部循环,则break只会跳出当前层的循环。
示例:

for(int y=0;y<=10;y++){
    if(y==5){   //y=5时直接提前跳出循环
        break;
    }
    System.out.println("y="+y);  //只能输出到y=4,因为y=5时已经跳出了循环
}

continue

continue语句可以强迫程序跳到循环的起始处,当程序运行到这玩意时,下面的的代码就不跑了,然后回到循环的起始处继续运行。
示例:

for(int x=0;x<=10;x++){
    if(x==5){
        continue;   //x=5时,回到循环程序开头,跳过System.out的执行,但此时循环程序还会一直执行,直至不满足`x<=10`
    }
    System.out.println("x="+x);     //不会输出x=5
}

小结

  1. 任何语言都会包括三种功能:顺序、选择、循环
  2. java中的选择结构有:if、if…else、switch
  3. 循环:while、do…while、for
  4. 两种中断关键字:break、continue

Similar Posts

下一篇 神秘备忘串

评论

传送门