Java基础学习第四天——选择与循环结构
来源:互联网 发布:linux http管理 编辑:程序博客网 时间:2024/05/16 06:08
- 选择结构switch语句
- 补充知识点键盘字符串输入
- 选择结构switch语句
- 循环结构
- for结构循环
- 典型应用
- for结构循环
- while循环语句
- dowhile循环语句
- 跳转控制语句
选择结构(switch语句)
- switch语句格式:
switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; … default: 语句体n+1; break; //可以省略 }
格式解释
- switch表示这是switch语句
- 表达式的取值:
byte
,short
,int
,char
- JDK**5**以后可以是
枚举
- JDK**7**以后可以是
String
- 表达式的取值:
- case后面跟的是要和表达式进行比较的值
语句体
部分可以是一条或多条语句- break表示中断,结束的意思,可以结束switch语句
- default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
- switch表示这是switch语句
执行流程
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
注意事项
- case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
- default可以省略吗?
- 可以省略。一般不建议因为其作用是对不正确的情况给出提示。除非判断的值是固定的。(单选题)
- break可以省略吗?
- 可以省略,一般不建议。否则结果可能不是你想要的
- default的位置一定要在最后吗?
- 可以出现在switch语句任意位置。
- switch语句的结束条件
- 遇到break
- 执行到程序的末尾
经典面试题:
int x = 2;int y = 3;switch(x){ default: y++; case 3: y++; case 4: y++;}System.out.println("y="+y);
- 分析:
- 先跳转到default : y = 4
- 再跳转到case 3: y = 5
- 再跳转到case 4: y = 6
- 已执行到swith尾部,跳出 所以y = 6
补充知识点:键盘字符串输入
String s = sc.nextLine();
if和switch应用场景区分:
- if语句使用场景:
- 针对结果是boolean类型的判断
- 针对一个范围的判断
- 针对几个常量值的判断
- switch语句使用场景:
- 针对几个常量值的判断
- if语句使用场景:
循环结构
- 循环语句的组成
- 初始化语句:
- 一条或者多条语句,这些语句完成一些初始化操作。
- 判断条件语句:
- 这是一个boolean 表达式,这个表达式能决定是否执行循环体。
- 循环体语句:
- 这个部分是循环体语句,也就是我们要多次做的事情。
- 控制条件语句:
- 这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
- 初始化语句:
for结构循环
- for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; }
- 执行流程
- A:执行初始化语句
- B:执行判断条件语句,看其结果是true还是false
- 如果是false,循环结束。
- 如果是true,继续执行。
- C:执行循环体语句
- D:执行控制条件语句
- E:回到B继续
典型应用
- 1~100间数据之和
for(int x=1;x<=100;x++){ sum +=x;}
- 1~100间偶数和
//方式1for(int x=1;x<=100;x++){ if(x%2 == 0){ sum +=x; }//方式2for(int x=0;x<100;x+=2){ sum +=x;}}
* 求5的阶乘
int jc=1;for(int x=1;x<=5;x++){ jc*=x;}
- 在控制台输出所有的“水仙花数”(其各位数字的立方和等于该数本身,eg:153 = 1*1*1 + 5*5*5 +3*3*3)
class ForDemo{ public static void main(String[] args){ for(int x=100;x<1000;x++){ int ge = x%10; int shi= x/10%10; int bai= x/10/10%10; if(x ==(ge*ge*ge + shi*shi*shi + bai*bai*bai)){ System.out.println("shuixianhua:"+x); } } }}
while循环语句
- while循环语句格式:
- 基本格式
while(判断条件语句) { 循环体语句; }
* 扩展格式
初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; }
- for循环语句和while循环语句可以等价转换,但还是有些小区别的
- 使用区别:控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
- 场景区别:
- for循环适合针对一个范围判断进行操作
- while循环适合判断次数不明确操作
do…while循环语句
- 基本格式
do { 循环体语句; }while((判断条件语句);
- 扩展格式
初始化语句; do { 循环体语句; 控制条件语句; } while((判断条件语句);
- 练习题:99乘法表:
class ForTest{ public static void main(String[] args){ for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(j+"*"+i+"=" +i*j+";\t"); } System.out.println(); } }}
- 注:
\t
:Tab键\r
:回车\n
:换行
跳转控制语句
Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
break 中断
- continue 继续
return 返回
break的使用场景:
- 在选择结构switch语句中
- 在循环语句中
break的作用:
- 跳出单层循环
- 跳出多层循环
- 带标签的跳出
- 格式:
标签名: 循环语句
标签名
要符合Java的命名规则
Eg:跳出多层循环
wc:for(int x=0;x<3;x++){ nc:for(int y=0;y<4;y++){ if(y==2){ break wc; //跳出外出循环。 } }}
- continue的使用场景:
- 在
循环语句
中 - 离开使用场景的存在是没有意义的
- 在
continue的作用:
- 单层循环对比break,然后总结两个的区别
- break 退出当前循环
- continue 退出本次循环,进入下一次执行。
- 单层循环对比break,然后总结两个的区别
Eg:
class ContinueDemo{ public static void main(String[] args){ for(int x=0;x<10;x++){ if(x==3){ //break; continue; } System.out.println(x); } }}//当使用break时,输出结果:0,1,2//当使用continue时,输出结果0,1,2,4,5,6,7,8,9
return 使用场景
- return关键字不是为了跳转出循环体,而是为了结束一个方法,也就是退出一个方法。跳转到上层调用的方法。
Eg:
class ReturnDemo{ public static void main(String[] args){ for(int x=0;x<10;x++){ if(x==2){ System.out.println("Exit"); //break; //continue; return; } System.out.println(x); } System.out.println("Over"); }}//break结果:0,1,Exit,Over//continue结果:0,1,Exit,3,4,5,6,7,8,9,Over//return结果:0,1,退出(直接退出了main方法)
1 0
- Java基础学习第四天——选择与循环结构
- JAVA基础----循环,选择结构
- 黑马程序员—Java基础—java基础语法:数据结构,运算符,选择结构,循环结构
- Java选择结构与循环结构
- 黑马程序员——java编程基础(二)选择结构语句、循环结构语句、方法
- 黑马程序员——Java基础之循环结构——第四篇
- java基础第四天 循环
- Ruby学习笔记-循环与选择结构
- Ruby学习笔记-循环与选择结构
- 第五周—循环结构与选择结构嵌套
- 黑马程序员——Java选择结构和循环结构
- 九天学会Java,第四天,循环结构
- 九天学会Java,第四天,循环结构
- Python基础(2)——Python选择、循环结构
- C语言基础教学——循环结构之for循环(第四课)
- 选择结构与循环结构
- Python学习笔记(10)-选择结构与循环结构
- Java选择结构、循环结构
- 逆波兰表达式的实现(也叫后缀表达式)
- Oracle中如何把表和索引放在不同的表空间里
- 不要随便在UI界面SystemClock.sleep,会造成卡顿
- 72 模板(四)
- backbone ——find方法应用
- Java基础学习第四天——选择与循环结构
- Centos下zookeeper安装配置
- 今天开始把一些心得记录下来!
- return和break的区别(附带源代码)
- [LightOJ 1269] Consecutive_Sum (Trie树妙用)
- Java 获取指定时间的前一天Date
- 学习理论-模型选择-1-问题引入
- bzoj 2429(最小瓶颈生成树)
- 直接插入排序