Javase day03

本文详细介绍了Java中的选择语句,包括比较运算符、逻辑运算符、boolean数据类型及其使用,深入讲解了if语句、双分支if-else、嵌套if和多分支if-else语句,以及switch语句的语法和应用。还提到了编程中常见的错误和陷阱,旨在帮助读者掌握条件控制的使用技巧。
摘要由CSDN通过智能技术生成

第三章 选择语句

3.1 比较运算符

  • 大于 >
  • 大于等于 >=
  • 小于 <
  • 小于等于 <=
  • 等于 ==
  • 不等于 !=

3.2 逻辑运算符

  • 单与 &
    有假则真。
  • 双与 &&
    有假则假。&&具有短路效果。左边是false,右边不执行。
  • 或 |
    有真则真。
  • 双或 ||
    ||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
  • 非 !
    非假则真,非真则假。
  • 异或 ^
    相同为假,不同为真。

3.3 boolean数据类型

boolean 数据类型声明一个具有值 true 或者 false 的变量 。

相等的关系操作符是两个等号 ( = = ) , 而不是一个等号 ( - ) , 后者是指斌值操作符
比较的结果是一个布尔值 : true ( 真 ) 或 false ( 假 ) 。 例如 , 下面的语句显示 true :

double radius » 1 ;
System . out . println ( radius > 0 ) ;

具有布尔值的变量称为布尔变量 ( boolean variable ) , boolean 数据类型用于声明布尔型变量 。 boolean 型变量可以是以下这两个值中的一个 : true 和 false 。 例如 , 下述语句将true 赋值给变 M lightsOn :

boolean lightsOn=true ;

3.4 if语句

if 语句是一个结构 , 允许程序确定执行的路径 。
在这里插入图片描述
单分支 if 语句是指当且仅当条件为 true 时执行一个动作 。 单分支 if 语句的语法如下 :

if ( 布尔表达式 ) {
   
语句 ( 组 ) :
}

给出一个程序 , 提示用户输入一个整数 。 如果该数字是 5 的倍数 , 打印HiFive 。

import java . util . Scanner ;

public class SimplelfDemo {
   
	public static void main ( String [ ] args ) {
   
		Scanner input=new Scanner ( System . in ) ;
		System , out . println( " Enter an integer :" ) ;
		int number=input . nextlnt();
		if ( number % 5 0 )
			System . out . pri ntlnC ' HiFive " ) ;

		if ( number % 2 0 )
			 System . out . println ( " HiEven " ) ;
}
}

3.5 双分支if-else语句

if - else 语句根据条件是真或者是假 , 决定执行的路径 。在这里插入图片描述
下面是双分支 if- else语句的语法 :

if ( 布尔表达式 > {
   
布尔表达式为其时执行的语句 ( 组 ) ;
}
else {
   
布尔表达式为假时执行的语句 ( 组 ) ;
}

检测一个数是奇数还是偶数 , 如下所示 :

if ( number X 2 == 0 )
	System.out.println( number + " is even . " ) ;
else
	System.out.println ( number + " is odd . " ) ;

3.6 嵌套的 if 语句和多分支 if - else 语句

if 语句可以在另外一个 if 语句中 , 形成嵌套的 if 语句 。
可以使用多分支 i f - else 语句来给出一个分数
可以使用多分支 i f - else 语句来给出一个分数

示例:

在这里插入图片描述

import java.util.Scanner;

public class Test1 {
    
	public static void main(String[] args) {
   
		Scanner scanner=new Scanner(System.in); 
		//1.获取身高和体重 
		System.out.print("Please enter your weight and hight:"); 
		double weight=scanner.nextDouble(); 
		double hight=scanner.nextDouble(); 
		//2.BMI=体重/身高^2 
		double BMI=weight/hight/hight; 
		//3.将BMI进行判断,输出相应的说明 
		if(BMI>=30.0){
    
			System.out.println("过胖");
		}else if(BMI>=25.0){
   
			System.out.println("超重");
		}else if(BMI>=18.5){
    
			System.out.println("正常"); }
		else{
    
			System.out.println("偏瘦"); 
		} 
	} 
}

在这里插入图片描述

import java.util.Scanner; 

public class Test2 {
    
	public static void main(String[] args) {
    
		Scanner scanner=new Scanner(System.in); 
		//1.获取用户输入的年份 
		System.out.print("Enter the year:"); 
		int year=scanner.nextInt(); 
		//2.将年份进行判断 year%4==0&&year%100!=0 || year%400==0 
		if( year%4==0&&year%100!=0 || year%400==0){
    
			System.out.println(year+"是闰年"); 
		}else{
    
			System.out.println(year+"是平年"); 
		} 
	} 
}

3.7 switch语句

switch 语句基于变量或者表达式的值来执行语句 。
在这里插入图片描述
下面是 switch 语句的完整语法 :

switch ( switch 表达式 ) {
   
  case1 : 语句 ( 组 ) 1 ;
  	break ;
  case2 : 语句 ( 组 ) 2 ;
  	break ;
  case 值 N : 语句 ( 组 ) Nv
  	break ;
default : R 认情况下执行的语句 ( 组 )
}

程序清单 3 - 5 中的 if 语句是根据单独的一个 true 或 false 条件做出选择的 。 根据变量status 的值 , 会有四种计算税金的情况 。 为了全面考虑所有的情况 , 需要使用嵌套的 if 语句 。 过多地使用嵌套的 if 语句会使程序很难阅读 。 Java 提供 switch 语句来有效地处理多重条件的问题 。 可以使用下述 switch 语句替换程序清单 3 - 5 中的嵌套 if 语句 :

switch ( status ) {
   
	case 0 : compute tax for single filers ;
		break ;
	case 1 : compute tax for married jointly or qualifying widow ( er ) ;
		break ;
	case 2 : compute tax for married filing separately ;
		break ;
	case B : compute tax for head of household ;
		break ;
	default : System . out . println ( " Error : invalid status " ) ;
		System . exit ( 1 ) ;
}

3.8 常见错误与陷阱

  • 忘记必要的括号
  • 在if行出现错误的分号
  • 对布尔值的冗余测试
  • 悬空else出现的歧义
  • 两个浮点数值的相等测试
  • 简化布尔变量赋值
  • 避免不同情形中的重复代码

本章小结

  1. boolean 类型变量可以存储值 true 或 false。
  2. 关系操作符(<、 <= 、 ==、 ! =、 >、 >=) 产生一个布尔值。
  3. 选择语句用于可选择的动作路径的编程。 选择语句有以下几种类型: 单分支 if 语句、 双分支 ifelse
    语句、 嵌套 if 语句、 多分支 if-else 语句、 switch 语句和条件表达式。
  4. 各种 if 语句都是基于布尔表达式来控制决定的。 根据表达式的值是 true 或 false, 这些语句选择两种
    可能路径中的一种。
  5. 布尔操作符&&、||、!和^对布尔值和布尔变量进行计算。
  6. 当对 p1&&p2 求值时, Java 先求 p1 的值, 如果 p1为 true, 再对 p2 求值; 如果 p1 为 false, 就不再对 P2 求值。 当对 p1ll p2 求值时, Java 先求 p1的值, 如果 p1为 false, 再对 p2 求值; 如果p1为 true, 就不再对 p2 求值。 因此, && 也称为条件与操作符或短路与操作符, 而 || 也称为条件或操作符或短路或操作符。
  7. switch 语句根据 char、 byte,short、 int 或者 String 类型的 switch 表达式来进行控制决定。
  8. 在 switch 语句中, 关键字 break 是可选的, 但它通常用在每个分支的结尾, 以中止执行 switch语
    句的剩余部分。 如果没有出现 break 语句, 则执行接下来的 case 语句。
  9. 表达式中的操作符按照括号、 操作符优先级以及操作符结合规则所确定的次序进行求值。
  10. 括号用于强制求值的顺序以任何顺序进行。
  11. 具有更高级优先权的操作符更早地进行操作。 对于同样优先级的操作符, 它们的结合规则确定操作的顺序。
  12. 除开赋值操作符的所有二元操作符都是左结合的, 赋值操作符是右结合的。

编程练习:

在这里插入图片描述

import java.util.Scanner;


public class Demo3_1 {
   
	public static void main(String[] args) {
   
		Scanner scanner=new Scanner(System.in);
		//1.获取系数 a b c
		System.out.print("Enter a,b,c:");
		double a=scanner.nextDouble();
		double b=scanner.nextDouble();
		double c=scanner.nextDouble();
		//2.根据delt=b^2-4ac的值 进行判断
		double delt=b*b-4*a*c;
		if(delt>0){
   
			double x1=(-b+Math.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值