8.逻辑类型
(1)布尔类型
在Java中,逻辑类型主要有两个取值:`true` 和 `false`。这种类型的数据称为布尔类型(boolean)。
布尔类型主要用于表示逻辑条件的真或假。在控制流语句(如条件语句和循环语句)中,布尔类型常常用于判断条件的真假,从而决定程序的执行路径。
以下是布尔类型的基本使用示例:
public class BooleanExample {
public static void main(String[] args) {
boolean isJavaFun = true;
boolean isFishTasty = false;
System.out.println("Java是否有趣? " + isJavaFun);
System.out.println("鱼是否好吃? " + isFishTasty);
}
}
在这个例子中,`isJavaFun` 被赋值为 `true`,表示Java很有趣;`isFishTasty` 被赋值为 `false`,表示鱼不好吃。在实际应用中,布尔类型常用于条件判断,例如在 `if` 语句中:
if (isJavaFun) {
System.out.println("Java很有趣!");
} else {
System.out.println("Java不那么有趣。");
}
这样的判断可以根据变量的布尔值决定执行不同的代码块。布尔类型在编写控制流程、逻辑判断等方面非常常用。
(2)逻辑运算
在Java中,逻辑运算用于处理布尔类型的值,通常涉及到组合和判断多个条件。Java提供了三个主要的逻辑运算符:与(`&&`),或(`||`),非(`!`)。
1. 与运算 (&&):
- 语法:`条件1 && 条件2`
- 表达式的结果为 `true`,当且仅当两个条件都为 `true` 时。
boolean condition1 = true;
boolean condition2 = false;
boolean result = condition1 && condition2; // 结果为 false
2. 或运算 (`||`):
- 语法:`条件1 || 条件2`
- 表达式的结果为 `true`,当至少一个条件为 `true` 时。
boolean condition1 = true;
boolean condition2 = false;
boolean result = condition1 || condition2; // 结果为 true
3. 非运算 (`!`):
- 语法:`!条件`
- 表达式的结果为 `true`,当条件为 `false` 时。
boolean condition = true;
boolean result = !condition; // 结果为 false
这些逻辑运算符可以用于构建复杂的条件,例如在 `if` 语句中:
boolean condition1 = true;
boolean condition2 = false;
if (condition1 && condition2) {
System.out.println("条件1和条件2都为true");
} else if (condition1 || condition2) {
System.out.println("条件1或条件2至少有一个为true");
} else {
System.out.println("条件1和条件2都为false");
}
这个例子演示了如何使用逻辑运算符来组合和判断多个条件,根据不同的情况执行相应的代码块。
练习:
1.求和
(1)f(n)=1+1/2+1/3+…+1/n;
代码:
import java.util.Scanner;
public class demo11 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0.0;
for (int i = 1; i <= n; i++) {
sum += 1.0 / i;
}
System.out.println(sum);
System.out.printf("%.2f", sum);//通过printf 控制输出格式
in.close();
}
}
输出结果 :
(2)f(n)=1-1/2+1/3-1/4…+1/n;
代码:
import java.util.Scanner;
public class demo12 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
double sum = 0.0;
int sign = 1;
for (int i = 1; i <= n; i++, sign = -sign) {
sum += sign * 1.0 / i;
}
System.out.println(sum);
System.out.printf("%.2f", sum);
in.close();
}
}
输出结果:
2.求最大公约数
代码:
import java.util.Scanner;
public class demo13 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int gys = 1;
for (int i = 2; i <= a && i <= b; i++) {
if (a % i == 0 && b % i == 0) {
gys = i;
}
}
System.out.println(a + "和" + b + "的最大公约数为" + gys);
in.close();
}
}
输出结果: