
在前端开发或任何需要几何图形判断的场景中,根据图形的属性来识别其类型是常见的需求。本教程将以四边形为例,指导您如何利用javascript的条件判断语句,结合四边形的几何定义,编写出准确识别正方形、矩形、菱形和平行四边形的程序。
在编写判断逻辑之前,首先需要明确各种四边形的几何定义:
正方形 (Square):
菱形 (Rhombus):
矩形 (Rectangle):
立即学习“Java免费学习笔记(深入)”;
平行四边形 (Parallelogram):
在使用prompt()函数获取用户输入时,需要特别注意其返回值的类型。prompt()总是返回一个字符串(string)类型的值。在进行数值比较和计算之前,必须将其转换为数字类型,否则会导致非预期的结果(例如,字符串“10”和“2”进行==比较可能为false,但字符串“10” + “2”会得到“102”)。
推荐使用Number()函数或一元加运算符+进行类型转换:
let sideLength_one = Number(prompt("What is the length of the first side? "));
// 或者
// let sideLength_one = +prompt("What is the length of the first side? ");在原始代码中,存在一些常见的逻辑错误和不推荐的实践:
条件判断的误用:
switch(true)的适用性: 虽然技术上可以使用switch(true)来模拟if-else if链,但对于复杂的条件逻辑判断(涉及多个变量、范围或组合条件),if-else if结构通常更直观、更易读和维护。switch语句更适合于基于单个变量的精确值匹配。
为了准确判断四边形类型,我们需要遵循以下原则:
下面是基于这些原则的详细判断逻辑和示例代码:
条件: 四条边都相等,且所有角都为90度。
if (s1 === s2 && s2 === s3 && s3 === s4 && a1 === 90 && a2 === 90 && a3 === 90 && a4 === 90) {
console.log("您的图形是:正方形 (Square)");
}条件: 四条边都相等,且对角相等(相邻角互补)。此判断应在正方形之后,以排除正方形。
else if (s1 === s2 && s2 === s3 && s3 === s4 && a1 === a3 && a2 === a4 && (a1 + a2 === 180)) {
console.log("您的图形是:菱形 (Rhombus)");
}条件: 对边相等,且所有角都为90度。此判断应在正方形之后,以排除正方形。
else if (s1 === s3 && s2 === s4 && s1 !== s2 && a1 === 90 && a2 === 90 && a3 === 90 && a4 === 90) {
console.log("您的图形是:矩形 (Rectangle)");
}条件: 对边相等,且对角相等(相邻角互补)。这是最一般的判断,应放在最后。
else if (s1 === s3 && s2 === s4 && a1 === a3 && a2 === a4 && (a1 + a2 === 180)) {
console.log("您的图形是:平行四边形 (Parallelogram)");
}如果以上所有条件都不满足,则该图形是一个普通的四边形,不属于上述任何特殊类型。
else {
console.log("您的图形是:一个普通的四边形 (Other Quadrilateral)");
}以下是整合了上述逻辑的完整JavaScript代码示例:
/**
* 这是一个程序,接收四边形的每条边长和每个角的度数(可以硬编码或通过prompt输入),
* 并判断该图形是正方形、矩形、菱形还是平行四边形。
*/
console.log('欢迎!让我们来判断您今天面对的是什么形状。');
// 获取用户输入并转换为数字
const s1 = Number(prompt("请输入第一条边的长度: "));
const s2 = Number(prompt("请输入第二条边的长度: "));
const s3 = Number(prompt("请输入第三条边的长度: "));
const s4 = Number(prompt("请输入第四条边的长度: "));
console.log("太棒了!现在我们来输入角度。");
const a1 = Number(prompt("请输入第一个角的度数: "));
const a2 = Number(prompt("请输入第二个角的度数: "));
const a3 = Number(prompt("请输入第三个角的度数: "));
const a4 = Number(prompt("请输入第四个角的度数: "));
// 验证输入是否为有效数字 (可选但推荐)
if (isNaN(s1) || isNaN(s2) || isNaN(s3) || isNaN(s4) ||
isNaN(a1) || isNaN(a2) || isNaN(a3) || isNaN(a4)) {
console.log("错误:请输入有效的数字!");
} else if (a1 + a2 + a3 + a4 !== 360) {
// 四边形内角和必须为360度
console.log("错误:输入的角度不构成一个有效的四边形(内角和不等于360度)。");
} else {
// 开始判断四边形类型,从最特殊到最一般
if (s1 === s2 && s2 === s3 && s3 === s4 && a1 === 90 && a2 === 90 && a3 === 90 && a4 === 90) {
console.log("您的图形是:正方形 (Square)");
} else if (s1 === s2 && s2 === s3 && s3 === s4 && a1 === a3 && a2 === a4 && (a1 + a2 === 180)) {
// 菱形:四边相等,对角相等,相邻角互补
console.log("您的图形是:菱形 (Rhombus)");
} else if (s1 === s3 && s2 === s4 && s1 !== s2 && a1 === 90 && a2 === 90 && a3 === 90 && a4 === 90) {
// 矩形:对边相等,所有角90度,且不是正方形
console.log("您的图形是:矩形 (Rectangle)");
} else if (s1 === s3 && s2 === s4 && a1 === a3 && a2 === a4 && (a1以上就是JavaScript四边形类型判断:边长与角度的条件逻辑实现的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号