if和switch都是在都条件时才执行代码时会用到的两个方法。
if:与else搭配,if...else...(else不是必须的)
if语句的基本语法是根据if的计算结果为true还是false,再决定是否执行if语句块
如果if后的括号内计算结果为true,则执行花括号里面的语句块,如果计算结果为false,则会跳过if语句的语句块,执行else后面的语句块。
注意:当if语句块只有一行代码时,花括号可以省略掉,不过这个不是好的编程习惯,所以并不推荐这种写法
如果有多个条件依次进行判断时,还可以用if...else if...。
//判断当前字符的分类
if (c>'A'&&c<='Z'||c>='a'&&c<='z'){
//英文
letters++;
} else if (c>=0x4e00&&c<=0x29fa5) {
//汉字
chs++;
} else if (c >= '0' && c <= '9') {
//数字
numbers++;
}else {
//标点符号
flags++;
}
注意:使用多个if时,要特别注意判断顺序,有规律的需要按照范围”从大到小依次判断“,或”从小到大依次判断“
边界条件也要注意,我先举个例子:当分数=90时,本来是优秀,但因为第一个if的条件是n>90,并没有包含90,所以输出结果就是及格,将条件改为n>=90就好了
public static void main(String[] args) {
int n = 90;
if (n > 90) {
System.out.println("优秀");
} else if (n >= 60) {
System.out.println("及格了");
} else {
System.out.println("挂科了");
}
}
在这里加入一个新的知识点,”=“和”==“的区别,”=“在Java中是表示赋值,”==“判断基本数据类型是否相等。但是在引用类型中,判断两个引用类型的变量是否相等时,”==“表示判断引用类型的内存地址是否相等,并不能比较内容,要是比较内容是否相同,这时候就需要equals()方法。
String s = "hello";
String s2="Hello";
if (s.equals(s2)) {
System.out.println("相等哦");
} else {
System.out.println("不相等哦");
}
switch语句:与case搭配,根据某个表达式的结果,分别执行不同的代码分支
switch的计算结果必须为整型,字符型,字符串或枚举类型。
语法结构:
switch(表达式){
case 1:
//表达式等于1
System.out.println("执行case 1中的代码逻辑");
break;//退出switch
case 2:
//表达式等于2
System.out.println("执行case 2中的代码逻辑");
break;//退出switch
default:
//默认情况,即上述case值都不相等
System.out.println("执行case 3中的代码逻辑");
break;//退出switch
default 的位置可以在末尾部分也可以在switch语句的开始部分
注意:使用switch时,case语句并没有花括号{},所以break就显得尤为重要,在执行完一个case语句时,没有break就会导致后续语句仍然会继续执行,直到遇到break语句,所以,任何时候都不能忘记写break。
如果遇到多个case语句执行的是同一个代码块,可以采用下述写法:
switch (counter) {
case 0:
case 1:
case 2:
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;
}
有问题欢迎评论区讨论哦