多分支使用
- 多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有;
- 如果有else,当所有的条件表达式都不成立,则默认执行else代码块
嵌套分支
nested:嵌套的,嵌套的
Switch
案例一:
请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g
a表示星期一,b表示星期二,...
根据用户的输入显示相应的信息,要求使用switch语句完成。
源代码:
import java.util.Scanner;
public class Switch01 {
public static void main(String[] args) {
/*
案例:请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g
a表示星期一,b表示星期二,...
根据用户的输入显示相应的信息,要求使用switch语句完成
*/
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入一个字符(a-g):");
//把接收到的字符串转成一个字符,即取它的第一个字符
char c1 = myScanner.next().charAt(0);
//在java中只要是有值返回就是一个表达式
switch(c1) {
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;
case 'f':
System.out.println("今天是星期六");
break;
case 'g':
System.out.println("今天是星期天");
break;
default://default子句可以没有
System.out.println("输入的内容不正确,没有匹配");
}
}
}
switch(表达式)中表达式的返回值必须是:byte/short/int/char/enum【枚举】/String
编程思想
化繁为简
先死后活
For
如果在for循环中定义了一个变量,那么这个变量的作用范围只限于for循环,出了for循环,要使用这个变量就需要重新定义了。
dowhile
do{
循环体(语句);
循环变量迭代;
}while(循环条件); //最后有一个分号
多重循环控制
建议一般使用两层,最多不要超过3层,否则代码可读性很差。
break
//随机生成[1,100]之间的任意整数
(int)(Math.random() * 100) + 1
break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
public class BreakDetail {
public static void main(String[] args) {
//break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
//在实际的开发中,尽量不要使用标签
label1:
for(int j = 0; j < 4; j ++) {
label2:
for(int i = 0; i < 10; i ++) {
if(i == 2) {
break label1;
}
System.out.println("i = " + i);
}
}
}
}
在实际的开发中,尽量不要使用标签,代码可读性差
补充知识
字符串的内容比较使用的方法
public class BreakDetail {
public static void main(String[] args) {
String s1 = "hello";
System.out.println(s1.equals("hello")); //true
//以下这种写法比较推荐,可以避免空指针的问题
System.out.println("hello".equals(s1)); //true
}
}
continue
continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和前面的标签的使用规则一样。
return(跳转控制语句)
return使用在方法,表示跳出所在的方法,在讲解方法时,还会详细介绍。
如果return写在main方法,表示退出程序