关于判断语句,循环语句和选择语句的整理
一:IF判断语句
If语句中,条件满足才会运行,条件不满足不会运行
if( 关系式 ){ ---- 小括号里面的是判断句 , 判断是否符合条件,里面必须是布尔值
语句体 ; ---- 如果小括号条件成立 , 就进入大括号 , 执行大括号的语句体
}
1.如果把分号写在了小括号和大括号中间,则计算机认为if后面没有语句体,后面的大括号就成了代码块
if判断中大括号是可以省略的,不写大括号,if的语句体默认是距离最近的为语句体且只有一条
2.IF 和三元运算符可以等价替换
但是还是有区别的:如果if语句中是输出语句的话是不能用三元运算符替换的
从代码的阅读性来讲,建议使用 if else 的方式
而且在任何情况下,if else都可以实现
//题目:判断两个数字是否相等?
public static void main(String[] args) {
int a = 10, b = 20; //还有另外一种形式int a = 10; int b = 20;
//当两种变量定义的类型一样的时候可以用逗号分隔
if (a == b){ //在JAVA中"=="两个等号是相等的意思,一个"="是赋值的意思
System.out.println("两个数字相等");
}
大括号跟小括号中间不能写其他的标点符号。
//1,大括号跟小括号中间不加标点,但是把大括号另起一行写,这样也是可以的,但是不太符合java的书写规范
//2,if判断中大括号是可以省略,如果不写大括号,那么if的语句体默认是离他最近的那行语句,且只能有一行。
int age = 16;
if(age > 18);
{
System.out.println("成年了");
}
System.out.println("继续执行");
//; 在java代码中表示语句的结束。
//如果我们把分号写在了小括号和大括号之间,认为if后面没有语句体。
//后面的大括号就形成了代码块。
二: IF ……….ELSE 选择语句
IF..ELSE语句是两者选其一,就意味着这个判断语句一定会运行一次
格式: if(关系式){ ----小括号里面的是判断句,判断是否符合条件
语句体1; } ----如果小括号条件成立,就进入大括号,执行大括号的语句体1,true执行
else{ --else部分不需要条件判断,当关系式不满足时,直接执行语句体2,false执行
语句体2; }
//题目:判断一个数字的奇偶性 public static void main(String[] args) { int num = 10; if (num % 2 == 0){ //%是取模的意思,如果该数字取模2等于0 则得出该数字是偶数 System.out.println("这个数字是偶数"); }else{ System.out.println("这个数字是奇数"); } }
注意点:
//1,小括号中的表达式一定要有一个布尔类型的结果。如果为true那么就执行if后面的语句体,如果为false就执行else后面的语句体
//2,大括号跟小括号中间不能写其他的标点符号。
//3,大括号跟小括号中间不加标点,但是把大括号另起一行写,这样也是可以的,但是不太符合java的书写规范
//4,if判断中大括号是可以省略,如果不写大括号,那么if的语句体默认是离他最近的那行语句,且只能有一行。
结论:"必须要掌握的"
以后我们自己写代码的时候,你就按照标准的格式来写绝对不会有问题。大括号不要省略。
以后如果在看一些源代码或者别人写的代码时,能看懂就可以了
三:IF…ELSE IF…ELSEIF…ELSE(选择语句)
格式: // if(判断条件){ --当条件判断有多个选择的时候,使用这个判断语句
// 执行语句1;}
// else if(判断条件){
// 执行语句2;}
// else{ 执行语句n+1;} --当以上条件都不满足的时候,则运行else
匹配规则:从上至下,只要有一个if匹配上,整个循环语句结束
PS:如果需要输出的有文字有字符则System.out.println("结果是:" + i);
//题目:判断学生的成绩水平 public static void main(String[] args) { int grade = 65; //定义学生成绩为grade if (grade <=100 && grade>80){ //&&这是短路与的符合 意思两个条件同时成立才可以执行相关条件 System.out.println("优秀"); } else if (grade <=80 && grade >=60){ System.out.println("及格"); } else if(grade <60 && grade>= 0 ){ System.out.println("不及格"); } else { //当所有条件不满足的时候执行else语句,同样的else语句不需要条件,仅仅是作为收尾的语句 System.out.println("数据错误"); } }
四:switch选择语句
格式: switch(表达式){ //首先计算出表达式的值
case 常量值1: //其次,和case依次比较,一旦有对应的值就会执行相应的语句
语句体1;
break; //在执行的过程中遇到break就会结束
case 常量值2:
语句体2;
break;...
default: //最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
语句体n+1;
break;
}
题目: //题目:判断今天是周几 public static void main(String[] args) { int weekday=1; switch (weekday){ case 1: System.out.println("今天是周一"); break; case 2: System.out.println("今天是周二"); break; case 3: System.out.println("今天是周三"); break; case 4: System.out.println("今天是周四"); break; case 5: System.out.println("今天是周五"); break; case 6: System.out.println("今天是周六"); break; case 7: System.out.println("今天是周日"); break; default: System.out.println("数据错误"); break;} } }
执行流程:
1 首先计算出表达式的值
2 其次 和case一次比较,一旦有对应的值,就会执行相应的语句,在执行过程中遇到break就结束
3 最后如果所有的case都和表达式的值不匹配,就会执行Default语句部分,然后程序结束.
执行流程--1:刚开始就把所有的case都加载到内存中,直接执行跟表达式一致的case
如果所有的case都不匹配,此时直接执行default语句
switch注意事项:
1:多个case后面的数值不能相同
2:switch小括号当中只能是下面数据类型
基本数据类型byte/short/char/int
引用数据类型String字符串,enum枚举(把有限个数据列出来让你任选其一)
3:switch语句格式很灵活,前后顺序语句可颠倒,而break可省略匹配哪一个case就从哪一个位置向下继续执行,直到遇到了break或者整体结束为止--穿透性
case和default顺序可以颠倒,没有上下顺序,按照习惯会把default放最下,default可省略
4:case穿透:没有break他会一直执行到有break或者大括号 结束
---举例穿透例子(月份)
PS:当需要匹配的值是有限个时,使用switch(月份星期)
当要匹配的值是一个范围时,用IF
五:循环语句
循环语句
循环语句的基本组成部分,一般可以分成四个部分
1:初始化语句:在循环开始最初执行,而且只做唯一一次
2:条件判断(得到的必须是布尔值)如果成立则循环继续;如果不成立,则循环退出
3:循环体 重复要做的事情内容,若干行语句。--判断语句是false时不执行
4:步进语句:每次循环之后都要进行的扫尾工作。每次循环结束以后都要执行一次
1.:for循环--
重复做某件事情
for(初始化表达方式1;布尔表达式2;步进语句4){
循环体3; }
首先进行1的计算,然后得到2的结果true或false,true进入3.然后进行4的扫尾工作
1234>234>234 直到不满足为止
题目:输出十次HelloWorld
public class Dora01 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println("HelloWorld!");
} } }
初始化语句,判断条件语句,循环体语句,控制条件语句(步进语句) 分别执行多少次
循环此时未知
初始化语句:不管循环多少次,只执行一次,且必须会被执行到。
判断条件语句:至少执行一次。当刚开始判断条件语句就是false的时候,执行一次。
执行循环次数 + 1 次
循环体语句:有可能执行不到的。当刚开始判断条件语句就是false的时候执行不到。
循环几次,执行几次.
控制条件语句(步进语句):跟循环体的次数是一样的。
五:while循环--
while循环还有一个标准格式,还有一个扩展格式
标准格式:
while (条件判断){
循环体;}
扩展格式:
初始化语句;
while (条件判断){
循环体;
步进语句;} 不熟悉while 的可以先写for语句再进行翻译
while和for实现的效果其实是一样的,知道具体循环次数的时候用for
当我们不知道具体循环的次数但是知道具体的循环停止条件,我们用while
public class Dora01 {
public static void main(String[] args){
int i = 1;
while(i<10){
System.out.println("Hello,World");
} } }
六:Do while
循环的标准格式
do{
循环体 }
while(条件判断);
Do while循环的扩展格式
初始化语句;
do{ --无条件执行。所以do语句至少执行一次
循环体;
步进语句;}
while(条件判断);
三种循环区别
for
while
do while
1;如果条件判断从来没满足过,那么for循环和while循环将会执行0次,但是do-while循环至少执行一次
2:for循环的变量在小括号当中定义,只有循环内部才可以使用。while和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用
循环控制语句 break语句
break 关键字的两种用法
1:可以在switch语句当中,一旦执行,整个switch语句立刻结束。
2:还可以用在循环语句当中,一旦执行,整个循环语句立刻结束,打破循环
3:不能单独出现,单独出现没有意义的
关于循环的选择还有一个小建议:
凡是次数确定的场景多用for循环,否则多用while循环
循环控制语句continue
另一种循环控制语句是continue关键字
一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。
死循环(无限循环)---永远停不下来的循环叫做死循环--强行停止死循环 Ctrl+c
死循环的标准格式
while(true){
循环体}
for( ; ; ){
}
循环嵌套
明确:
循环不是随便写的。
你要知道,外层循环是干嘛的,内层循环是干嘛的。
案例:打印5 * 5的矩形
for (int i = 0; i < 5 ; i++ ){
for (int j = 0; j < 5 ; j++ ){
System.out.print("*");
}
System.out.println();
}
//外层for循环:循环几行
//内层for循环:每一行有几个