java之if条件判断结构:if---switch---do..switch
if条件判断
什么是if?
- if条件语句是一个重要的编程语句,用于告诉程序在某个条件(true)成立的情况下执行某段语句,而在另一种(false)情况下执行另外的语句.
- 使用if条件语句,可选择是否执行紧跟在条件之后的那个语句.关键字if之后是作为条件的"布尔表达式",如果该表达式放回的结果为true,则执行其后的语句:若为false,则不执行if条件之后的语句.if条件语句可分为简单的if条件语句,if…else语句和if…elsle…if多分支语句.
- 1.编写格式—语法如下:
* if(布尔表达式){
* 语句序列
* }
- 什么是布尔表达式?
布尔表达式:必要参数,表示最后返回的结果必须是一个布尔值.它可以是一个单纯的布尔变量或者常量,也可以是使用关系或布尔运算符的表达式. - 什么是语句序列?
- 语句序列:可选参数.可以是一条或多条语句,当表达式的值为true时执行这些语句.若语句序列中仅有一条语句,则可以省略条件语句中的"{}"
- 运行结构
- 当布尔表达式为true的时候那么运行里面的语句 否则为false那么则跳过
- 当语句只有一条语句的时候 实例代码:
* int a=100;
* if(a==100)
* System.out.println("a等于100");
- 注意!:虽然if后面的语句块只有一条语句,省略"{ }"并无语法抱错,但为了增强程序的可读性最好不要省略
- 条件语句后的语句序列省略时,则可以保留外面的大括号,也可以省略大括号.然后再末尾添加";".如下所示的二种情况都是正确的.
- 实例如下:
* //布尔类型
* boolean b=false;
* if(b):
* //或者
* //布尔类型
* boolean b=false;
* if(b){
* }
- if条件判断语句 实例代码:
public class IfTest {
public static void main(String[] args){
//声明int型变量x,并赋值
int x=45;
//声明int型变量,并赋值
int y=12;
//判断x是否大于y
if(x>y){
//成立则输出
System.out.println("变量x大于变量y");
}
//判断x是否小于y
if(x<y){
//如果条件成立则输出
System.out.println("变量x小于变量y");
}
}
}
- 运行结果
- 输出语句:
变量x大于变量y
- 注意!在if()括号里只要最后的结果为true或者false无论写多少个布尔表达式都可以如:if(90>30||30<90&&80==80);
- 这一句什么意思呢?
- 意思就是90是否大于30很显然是大于的那么为true在看||(或者)30是否小于90?很显然也是为true再看&&(并且)80==80也是为true;那么true或者true并且true最终返回true
if…else分支
什么是if…else分支呢?
-
使用if…else条件语句,可选择是否执行紧跟在条件之后的那个语句.关键字if之后是作为条件的"布尔表达式",如果该表达式放回的结果为true,则执行其后的语句:若为false,则不执行if条件之后的语句,反而执行else里面的语句.
-
以上图片看的出 当布尔表达式(条件)为true的时候执行 true里面的语句 为false的时候执行false里面的语句
-
比如:令狐冲考试是否大于90分 如果大于则奖励他棒棒糖否则就是惩罚面壁思过我们来写一写
-
代码如下
//导包
import java.util.Scanner;
public class IfTtest {
public static void main(String[] args) {
//创建键盘扫描仪
Scanner in=new Scanner(System.in);
//提示用户输入
System.out.println("请输入令狐冲的考试成绩");
//int类型接收
int grade=in.nextInt();
//if判断是否大于或者等于90 true则奖励棒棒糖 false则面壁思过
if(grade>=90){
System.out.println("奖励令狐冲棒棒糖");
}else{
System.out.println("面壁思过");
}
}
}
- 运行结果
多重if结构
- 什么是多重if呢?
- 多重if就是if里面还有if 语法格式 if()…else if()…else if()…else…
- 其中一行满足条件那么就执行该里面的语句
- 例如:请输入一位学生成绩进行判断
- 成绩大于或者等于90;优秀
- 成绩大于或者等于80并且小于90;良好
- 成绩小于80并且成绩大于30;中等
- 成绩小于或者等于30并且成绩大于0;差
- 代码如下
//导包
import java.util.Scanner;
public class IfTtest {
public static void main(String[] args) {
//创建键盘扫描仪
Scanner in=new Scanner(System.in);
//提示用户输入
System.out.println("请输入成绩");
//接收用户输入
int grade=in.nextInt();
if(grade>=90){
System.out.println("优秀");
}else if(grade>=80&&grade<90){
System.out.println("良好");
}else if(grade<80&&grade>30){
System.out.println("中等");
}else if(grade<=30&&grade>=0){
System.out.println("差");
}else{
//提示用户输入
System.out.println("请输入成绩");
System.out.println("输入错误");
}
}
}
- 运行结果
switch结构
- 什么是switch结构呢?
- switch结构也叫选择条件结构,相比较if条件判断来说比较简单明了的方式来实现"多选一"的选择.
- 语法格式
switch(表达式){
case 常量值 1:
语句块1;
break;
case 常量值 n:
语句块n;
break;
default:
语句块 n+1;
- switch语句中表达式的值必须是整形,字符型或者字符串类型,常量1~n必须也是整形,字符型或者字符串类型.swich语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相同,则执行该case语句后的干个语句直到遇到break语句为止.此时如果该case语句中没有break语句,讲继续执行后面case中的若干个语句,直到遇到break语句为止.若没有一个常量的值与表达式的值相同,则执行default后面的语句.default语句为可选的,如果它不存在,且switch语句中的表达式的值不与任何case的常量值相同,switch则不做任何处理.
- 知识点
- 在JDK 1.6及以前的版本,switch语句中表达式的值必须是整数或字符型(char),常量值1~n必须也是整数或字符型(char),但是在JDK 1.7中, switch语句的表达式的值除了是整数或字符型(char),还可以是字符串类型,这是JDK 7新添加的特征.
- 代码演示
import java.util.Scanner;
//类
public class SwitchText {
//主函数
public static void main(String[] args) {
//创建键盘扫描仪
Scanner in=new Scanner(System.in);
//提示用户
System.out.println("请输入令狐冲的表现 1.优秀 2.差");
//创建变量 并接收用户输入
int a=in.nextInt();
//switch选择判断语句
switch(a){
//语句1
case 1:
//语句块
System.out.println("奖励令狐冲棒棒糖");
//结束
break;
//语句2
case 2:
//语句块2
System.out.println("奖励令狐冲面壁思过");
//结束
break;
//default语句
default:
System.out.println("输入错误");
}
}
}
- 三种运行结果
- 1.
- 2.
- 3.
- 注意事项!
- 在switch语句中,case语句后常量值表达式的值可以为整数,但绝不可以是实数,例如,下面的代码就是不合法
- case 1.1:
- 2.在case 1:语句后的符号不要打成;而是二个逗号组成: