JaavaSE day3

Boolean数据类型

要点提示:Boolean数据类型声明一个具有值true或者false的变量。

Java提供六种关系操作符(比较操作符),用于两个值得比较。

警告:相等的关系操作符是两个等号(==),而不是一个等号(=),后者是赋值操作符。

if语句

要点提示:if语句是一个结构,允许程序确定执行的路径。

单分支if语句是指当且仅当条件为true时执行一个动作。单分支if语句的语法如下:

if(布尔表达式){

语句(组);

}
if语句执行的流程图为:
注意:省略括号可以让代码更加简短,但是容易产生错误。当你返回去修改略去的代码时候,容易忘记加上括号。

双分支if-else语句

要点提示:if-else语句根据条件是真或者是假,决定执行的路径。
双分支if-else语句的语法:
if(布尔表达式){
布尔表达式为真时执行的语句(组);
}
else{
布尔表达式为假时执行的语句(组);
}
语句的流程图为:

常见的错误和陷阱

要点提示:忘记必要的括号,在错误的地方结束if语句,将==错用为=使用,悬空else分支,是选择语句的常见错误。if-else语句中重复的语句,以及测试双精度值相等是常见的陷阱。
常见错误有:
(1)忘记必要的括号
(2)在if行出现错误的分号
(3)对布尔值的冗余错误
(4)悬空else出现的歧义
(5)两个浮点数值的相等测试
常见的陷阱:
(1)简化布尔变量赋值
(2)避免不同情形中的重复代码

逻辑运算符

逻辑运算符!、&&、||和^可以用于产生复合布尔表达式。

switch语句

要点提示:switch语句基于变量或者表达式的值来执行语句。
Switch语句的完整语法是:
switch语句遵循的规则:
(1)switch表达式必须能计算出一个char、byte、short、int或者string类型值,必须总是用括号括住。
(2)关键字break是可选的。break语句会立即终止switch语句。
警告:不要忘记在需要的时候使用break语句。一旦匹配其中一个case,就从匹配的case处开始执行,直到遇到break语句或到达switch语句的的结束。

条件表达式

要点提示:条件表达式基于一个条件计算表达式的值。
产生随机数:Math.random()来获得一个0.0到1.0之间的随机double值,不包括1.0。

编程例题

1.根据判别式判断一元二次方程有几个实根

import java.util.Scanner;

public class Day3_1 {
	public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		//提醒用户输入三个数字
		System.out.print("请输入a  b  c的值");
		double a=scanner.nextDouble();
		double b=scanner.nextDouble();
		double c=scanner.nextDouble();
		//先求出b^2-4ac的值
		double m=b*b-4*a*c;
		//判断b^2-4ac
		if(m>0){
			double r1=(-b+Math.sqrt(m))/2*a;
			double r2=(-b-Math.sqrt(m))/2*a;
			System.out.print("函数有两个实根"+r1+r2);
		}else if(m==0){
			double r1=-b/2*a;
			System.out.print("函数有一个实根"+r1);
		}else{
			System.out.print("函数没有实根");
		}
	}
}

2.解线性方程,输入六个数,计算x=(ed-bf)/(ad-bc).y=(af-ec)/(ad-bc)

import java.util.Scanner;

public class Day3_2 {
	public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		//提醒用户输入六个数字
		System.out.println("输入六个值a b c d e f");
		double a=scanner.nextDouble();
		double b=scanner.nextDouble();
		double c=scanner.nextDouble();
		double d=scanner.nextDouble();
		double e=scanner.nextDouble();
		double f=scanner.nextDouble();
		//先求出分母的值
		double delt=a*d-b*c;
		if(delt!=0){
			double x=(e*d-b*f)/delt;
			double y=(a*f-e*c)/delt;
			System.out.print("x="+x);
			System.out.print("y="+y);
		}else{
			System.out.print("方程无解");
		}
	}
}

3.输入两个圆的中心坐标和各自的半径,判断第二个是否在第一个内,还是与第一个重叠。

package day2;

import java.util.Scanner;

public class Day3_15 {
	public static void main(String[] args){
		Scanner scanner=new Scanner(System.in);
		System.out.print("Enter circle1's center x-,y-coordinates,and raudius:");
		double x1=scanner.nextDouble();
		double y1=scanner.nextDouble();
		double r1=scanner.nextDouble();
		System.out.print("Enter circle2's center x-,y-coordinates,and raudius:");
		double x2=scanner.nextDouble();
		double y2=scanner.nextDouble();
		double r2=scanner.nextDouble();
		double distance=Math.sqrt(Math.pow(x1-x2,2)+Math.pow(y1-y2,2));
		if(distance<=(Math.abs(r1-r2))){
		System.out.print("circle2 is inside circle1");}
		else if(distance>=r1+r2){System.out.print("circle2 does not overlap circle1");
		}
		else{System.out.print("circle2 overlaps circle1");
	}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_42393388/article/details/82982987
今日推荐