判断一个变量与一系列值中某个值是否相等,每个值成为一个分支。
switch语句中的变量类型可以是:
-
byte、short、int或者char
-
从Java SE7开始switch支持字符串String类型
-
同时case标签必须是字符串常量或字面量
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//你可以有任意数量的case语句
default://可选
//语句
}
package com.tong.struct;
//jdk7的新特性,表达式结构可以是字符串
//字符的本质还是数字
//反编译 java---class(字节码文件)---反编译(IDEA)
public class SwitchDemo02 {
public static void main(String[] args) {
String name="heihei";
switch (name){
case "hei":
System.out.println("hei");
break;
case "heihei":
System.out.println("heihei");
break;
default:
System.out.println("what");
}
}
}
package com.tong.struct;
public class SwitchDemo01 {
public static void main(String[] args) {
//case 穿透 //switch匹配一个具体的值
char grade='A';
switch (grade){
case 'A':
System.out.println("优秀");
break;//可选
case 'B':
System.out.println("良好");
break;//可选
case 'C':
System.out.println("及格");
break;//可选
case 'D':
System.out.println("再接再厉");
break;//可选
case 'E':
System.out.println("挂科");
break;//可选
default:
System.out.println("未知等级");
}
}}
循环结构
while 循环
while是最基本的循环,他的结构为:
while(布尔表达式){
//循环内容
}
只要布尔表达式为true,循环就会一直执行下去
大多数情况会让循环停止下来,需要一个让表达式实效的方式来结束循环。
少部分情况需要循环一直执行,比如服务器的请求响应监听等
循环条件为true就会造成无限循环(死循环)
package com.tong.struct;
public class WhileDemo01 {
public static void main(String[] args) {
//输出1~100
int i=0;
while(i<100){
i++;
System.out.println(i);
}
}
}
package com.tong.struct;
public class WhileDemo02 {
public static void main(String[] args) {
int i=1;
int sum=0;
while(i<=100){
sum=sum+i;
i=i+1;
}
System.out.println(sum);
}}
do…while循环
对于while语句而言,如果不满足条件,则不能进入循环。但有时我们需要即使不满足条件,也至少执行一次。即用到do while
do{
//代码语句
}while(布尔表达式);
do while 和while的区别while 先判断后执行,do while先执行后判断
do while总是保证循环体会被至少执行一次
package com.tong.struct;
public class DoWhileDemo02 {
public static void main(String[] args) {
int a=0;
while(a<0){
System.out.println(a);
a++;
}
System.out.println("==========");
do{
System.out.println(a);
a++;
}while(a<0);
}
}
for 循环
for(初始化;布尔表达式;更新){
//代码语句
}
for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
package com.tong.struct;
public class ForDemo01 {
public static void main(String[] args) {
int a = 1;//初始化条件
while (a <= 100) {//条件判断
System.out.println(a);//循环体
a += 2;//迭代
}
System.out.println("while循环结束");
for(int i=1;i<=100;i++){
System.out.println(i);
}
System.out.println("for循环结束");
}}
package com.tong.struct;
public class ForDemo02 {
public static void main(String[] args) {
//练习1:计算0到100之间的奇数和偶数的和
int oddsum = 0;
int evensum = 0;
for (int i = 0; i < 100; i++) {//初始值i=0,判断是否i<100,满足时运行下面的代码,然后运行i++,再判断是否满足i《100
if (i % 2 != 0) {
oddsum = oddsum + i;
} else {
evensum = evensum + i;
}
}
System.out.println("奇数的和:" + oddsum);
System.out.println("偶数的和:" + evensum);
}
}
package com.tong.struct;
public class ForDemo03 {
//练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
public static void main(String[] args) {
for (int i = 0; i <=1000; i++) {
if(i%5==0){
System.out.print(i+"t");
}
if(i%(3*5)==0){//换行
System.out.print("n");
}
}
//println输出完会换行
//print 输出完不会换行
}
}



