switch语句:
格式:
switch(表达式) {
case 值1:
语句1;
break ;
case 值2:
语句2;
break;
case 值3:
语句3;
break;
....
default:
语句n+1;
break;
}
格式的解释:
switch:当前是一个选择结构语句,它的作用和if语句是一样
case语句:它后面的值是和表达式进行比较
break:表示结束当前switch语句
default:是和if语句中的else意识时候一样的,如果条件都不成立,执行default中的语句
执行流程:
case语句中的值1和表达式中的值比较,如果一致,执行语句1
如果不一致,走case 值2,再进行比较,如果椅子,执行语句2
....
如果上述都不一致,执行default中的语句;
switch语句后边的表达式:
能跟的类型:byte,short,int,char;
jdk5以后,可以跟枚举;
jdk7以后,可以String类型;
举例:
package org.westos.a_switch;
//导包;
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
//1)创建键盘录入对象;
Scanner sc = new Scanner(System.in) ;
//2)接收数据;
System.out.println("请输入一个数据:");
int week = sc.nextInt() ;
//使用switch语句;
switch(week) {
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 ;
}
}
}
关于switch语句中的注意事项:
1)case语句的后面只能跟常量(根据具体的需求),不能跟变量! javascript中的case后面是可以跟变量并且还可以表达式
2)default语句可以在switch语句中的任何位置,不影响代码执行,如果是在语句中,那么break最好带上
3)建议把break带上,否则会造成一个现象:case穿透!(case穿透不一定只有坏处);
4)switch语句的结束条件:
⑴语句break语句结束
⑵执行默认执行到末尾语句结束
5)case语句的后面是冒号,表示和switch语句中的表达式进行比较
6)跳转控制语句: break,continue,retrun
循环语句之for循环语句:
格式:
for(初始化语句;条件语句;步长语句){
循环体语句;
}
执行流程:
初始化语句:给当前变量进行赋值,如果满足条件语句,那么执行循环体语句
执行步长语句,对变量进行自增或自减---->在对条件语句进行判断,如果满足条件,再次执行循环体---->步长语句
直到不满足条件为止,循环语句结束...
循环语句的注意事项:
1)条件语句,不管是一个简单的表达式还是复杂的表达式,都是boolean类型;
2)初始化语句,和条件表语句后面都要带上分号;
举例:
} package org.westos.b_for; /** * 需求:统计"水仙花数"有多少个 * * 分析: * 1)定义一个统计变量 初始化值0 * 2)分析求水仙花数 * 3)满足条件就统计变量++ * @author Administrator * */ public class ForDemo3 {public static void main(String[] args) { //定义一个统计变量: int count = 0 ; 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)) {//满足条件:统计变量++count ++ ;} } System.out.println("水仙花数共有 "+count+"个");}}
循环语句之while循环语句:
格式:
for(初始化语句;条件语句;步长语句){
循环体语句;
}
执行流程:
初始化语句:给当前变量进行赋值,如果满足条件语句,那么执行循环体语句
执行步长语句,对变量进行自增或自减---->在对条件语句进行判断,如果满足条件,再次执行循环体---->步长语句
直到不满足条件为止,循环语句结束...
循环语句的注意事项:
1)条件语句,不管是一个简单的表达式还是复杂的表达式,都是boolean类型;
2)初始化语句,和条件表语句后面都要带上分号;
while循环和for循环的区别?
1)如果从内存角度考虑,for循环要优于while循环,for循环语句执行完毕之后,变量会及时被GC垃圾回收期回收掉
while循环,它可以去访问循环语句中的变量;
2)根据具体需求具体分析:
如果循环次数明确的情况下,应用for循环;
如果不知道要循环多少次,应该去使用while循环;
举例:
package org.westos.c_while;
/**
* 我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
分析:
1)定义一个统计变量count,默认值0开始
2)8848m ,它是最终厚度 ,有一张足够大的纸张,厚度为:0.01m。,初始厚度
3)只要初始厚度小于最终厚度,就折叠
折叠一次,变成之前的2倍
4)输出count的值
*/
public class WhileTest2 {
public static void main(String[] args) {
//定义统计变量,记录折叠的次数
int count = 0 ;
//8848m ,它是最终厚度 ,有一张足够大的纸张,厚度为:0.01m。,初始厚度
//start = 1 end=884800
int start = 1 ;
int end = 884800 ;
//使用while循环
while(start<=end) {
//只要小于最终厚度,统计++
count ++ ;
//只要初始厚度小于最终厚度,就折叠
//折叠一次,变成之前的2倍
start *= 2 ;
System.out.println("第"+count+"次的厚度是:"+start);
}
System.out.println("最终折叠了"+count+"次");
}
}
循环语句之do-while循环语句:
格式:
基本格式:
do{
循环体语句
}whiel(判断条件语句) ;
扩展格式:
初始化语句;
do{
循环体语句;
控制体语句;(步长语句)
}while(条件判断语句) ;
do-while与for、while最大的区别:
do-while的循环体语句至少执行一次;
举例:
package org.westos.d_dowhile;
public class DoWhileDemo2 {
public static void main(String[] args) {
for(int i = 1 ; i <=5 ; i ++) {
System.out.println("我们爱Java...");
}
System.out.println("--------------------");
int j = 1 ;
do {
System.out.println("我们爱Java...."); //循环体语句至少执行一次
j++ ;
}while(j<=5) ;
}
}
循环语句之for-for循环语句:
格式:
for循环嵌套:
for(){
for(){
//循环体;
}
}
举例:
package org.westos.e_forfor;
/**
* 需求:请输出下列的形状
*
**
***
****
*****
*/
public class ForForDemo2 {
public static void main(String[] args) {
//先输出 5行5列的*
for(int x = 0 ; x <5 ; x ++) {//行
for(int y = 0 ; y < 5 ; y++) {//列
System.out.print("*");
}
System.out.println();
}
System.out.println("-------------------------");
//5行5列可以实现,现在需求,列数在发生变化
//第一行 1列 y = 0 ; y<=0 ;y++
//第二行 2列 y = 0 ; y <=1 ; y++
//第三行 3列 y = 0 ; y <=2 ; y ++
//第四行 4列 y = 0 ; y <= 3 ; y ++
//第五行 5列 y = 0 ; y <=4 ; y ++
//看规律:列数的变量刚好能去到 x的值=0,1,2,3,4
for(int x = 0 ; x < 5 ; x ++) {//行
for(int y = 0 ;y<=x ; y++) {//列
System.out.print("*");
}
System.out.println();
}
}
}
//输出结果:
*****
*****
*****
*****
*****
-------------------------
*
**
***
****
*****
跳转控制语句:
1>break可以单独使用吗?
break:不能单独使用,一般在switch语句,或者循环语句中使用;
continue:继续的意思,跳出当前循环,直接进入一次循环;
continue:单独是不能使用的,在循环语句中使用多;break:表示中断,结束的意思,结束语句;
return:
retrun:方法的返回值 ,会带回一个结果;
举例:
笔试题:
for(int x=1; x<=10; x++) {
if(x%3==0) {
//在此处填写代码
}
System.out.println(“Java基础班”);
}
我想在控制台输出2次:“Java基础班“
break;
我想在控制台输出7次:“Java基础班“
continue;
我想在控制台输出13次:“Java基础班“
System.out.println(“Java基础班”);