Java的输出函数
在Java中,最常用的输出函数是 System.out.println()
和 System.out.print()
。
public class OutputExample {
public static void main(String[] args) {
// 输出一行文本并换行
System.out.println("Hello, World!");
// 输出一行文本但不换行
System.out.print("Hello, ");
System.out.print("World!");
}
}
Java的输入函数
在Java中,可以使用 Scanner
类从控制台读取输入。首先需要导入 java.util.Scanner
类。
键盘输入代码的四个步骤:
1、导包:import java.util.Scanner;
2、创建Scanner类型的对象:Scanner scanner= new Scanner( System.in) ;
3、调用Scanner类的相关方法(next() / nextXxx()) ,来获取指定类型的变量
4、释放资源:调用Scanner对象的close()方法, scanner.close();
import java.util.Scanner;
public class InputExample {
public static void main(String[] args) {
// 创建 Scanner 对象,用于从控制台读取输入
Scanner scanner = new Scanner(System.in);
// 读取一个字符串
System.out.print("请输入一个字符串: ");
String inputString = scanner.nextLine();
System.out.println("你输入的字符串是: " + inputString);
// 读取一个整数
System.out.print("请输入一个整数: ");
int inputInt = scanner.nextInt();
System.out.println("你输入的整数是: " + inputInt);
// 读取一个浮点数
System.out.print("请输入一个浮点数: ");
double inputDouble = scanner.nextDouble();
System.out.println("你输入的浮点数是: " + inputDouble);
// 关闭 Scanner
scanner.close();
}
}
输入输出的练习题
- 编写一个程序,提示用户输入他们的名字并打印欢迎消息。
import java.util.Scanner;
public class WelcomeUser {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你的名字: ");
String name = scanner.nextLine();
System.out.println("欢迎, " + name + "!");
scanner.close();
}
}
- 编写一个程序,提示用户输入两个整数并计算它们的和。
import java.util.Scanner;
public class SumOfTwoNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个整数: ");
int num1 = scanner.nextInt();
System.out.print("请输入第二个整数: ");
int num2 = scanner.nextInt();
int sum = num1 + num2;
System.out.println("两个整数的和是: " + sum);
scanner.close();
}
}
这些代码展示了如何在Java中进行基本的输入输出操作。通过不断练习这些示例,可以更好地掌握Java的输入输出功能。
一、第一个Java程序
- 新建一个
A.java
文件。 - 使用记事本打开,输入以下代码:
注意:Java中的代码是严格区分大小写的;标点符号必须是英文状态下输入;路径和文件名不要使用中文。public class A { public static void main(String[] args) { System.out.println("Hello World"); } }
- 在文件夹上目录上输入
cmd
回车。 - 输入
javac A.java
编译Java文件。 - 输入
java A
运行Java文件。
二、Java中的注释
public class CommentsExample {
public static void main(String[] args) {
// 这是一个单行注释
/*
* 这是一个多行注释
* 可以写多行说明文字
*/
/**
* 这是一个文档注释
* 用于生成API文档
*/
System.out.println("注释的示例");
}
}
三、数据类型
Java基本数据类型
数据类型 | 解释 | 位数 | 默认值 | 举例说明 |
---|---|---|---|---|
byte | 位 | 8 | 0 | byte b = 10; |
short | 短整型 | 16 | 0 | short s = 10; |
int | 整数 | 32 | 0 | int i = 10; |
long | 长整型 | 64 | 0 | long l = 10L; |
float | 单精度 | 32 | 0.0f | float f = 10.0f; |
double | 双精度 | 64 | 0.0d | double d = 10.0d; |
char | 字符 | 16 | 空 | char c = 'c'; |
boolean | 布尔 | 8 | false | boolean b = true; |
注意:String 是对象,不属于基本数据类型。
数据类型转换
- 自动转换(隐式转换):小范围 -> 大范围
public class DataTypeConversion { public static void main(String[] args) { int a = 10; double b = a; // 自动转换 System.out.println(b); // 10.0 } }
- 强制转换(显式转换):大范围 -> 小范围
public class DataTypeConversion { public static void main(String[] args) { double a = 11.11; int b = (int) a; // 强制转换 System.out.println(b); // 11 } }
四、变量
声明变量的四种方式
public class VariableDeclaration {
public static void main(String[] args) {
// 第一种: 声明变量并赋值
int a = 10;
System.out.println("a: " + a);
// 第二种: 先声明变量,再赋值
int b;
b = 10;
System.out.println("b: " + b);
// 第三种: 同一种类型的变量,一行声明多个
int c1, c2, c3;
c1 = 10;
c2 = 20;
c3 = 30;
System.out.println("c1: " + c1 + ", c2: " + c2 + ", c3: " + c3);
// 第四种: 同一种类型的变量,一行声明多个并赋值
int d1 = 1, d2 = 2, d3 = 3;
System.out.println("d1: " + d1 + ", d2: " + d2 + ", d3: " + d3);
}
}
变量交换
public class VariableSwap {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = a; // 将 a 的值赋值给 c
a = b; // 将 b 的值赋值给 a
b = c; // 将 c 的值赋值给 b
System.out.println("a: " + a + ", b: " + b); // a: 20, b: 10
}
}
五、运算符
1. 算术运算符
public class ArithmeticOperators {
public static void main(String[] args) {
int a = 10, b = 20;
// 加法
System.out.println("a + b = " + (a + b)); // 30
// 减法
System.out.println("a - b = " + (a - b)); // -10
// 乘法
System.out.println("a * b = " + (a * b)); // 200
// 除法
System.out.println("a / b = " + (a / b)); // 0
// 取模
System.out.println("a % b = " + (a % b)); // 10
// 递增
System.out.println("++a = " + (++a)); // 11
// 递减
System.out.println("--b = " + (--b)); // 19
}
}
2. 赋值运算符
public class AssignmentOperators {
public static void main(String[] args) {
int a = 10, b = 20;
// 赋值
a = b;
System.out.println("a = b -> a: " + a); // a: 20
// 加法赋值
a += b;
System.out.println("a += b -> a: " + a); // a: 40
// 减法赋值
a -= b;
System.out.println("a -= b -> a: " + a); // a: 20
// 乘法赋值
a *= b;
System.out.println("a *= b -> a: " + a); // a: 400
// 除法赋值
a /= b;
System.out.println("a /= b -> a: " + a); // a: 20
// 取模赋值
a %= b;
System.out.println("a %= b -> a: " + a); // a: 0
}
}
3. 比较运算符
public class ComparisonOperators {
public static void main(String[] args) {
int a = 10, b = 20;
// 等于
System.out.println("a == b -> " + (a == b)); // false
// 不等于
System.out.println("a != b -> " + (a != b)); // true
// 大于
System.out.println("a >
b -> " + (a > b)); // false
// 小于
System.out.println("a < b -> " + (a < b)); // true
// 大于等于
System.out.println("a >= b -> " + (a >= b)); // false
// 小于等于
System.out.println("a <= b -> " + (a <= b)); // true
}
}
4. 逻辑运算符
public class LogicalOperators {
public static void main(String[] args) {
boolean a = true, b = false;
// 逻辑与
System.out.println("a && b -> " + (a && b)); // false
// 逻辑或
System.out.println("a || b -> " + (a || b)); // true
// 逻辑非
System.out.println("!a -> " + (!a)); // false
}
}
练习题
基础题目
-
声明两个整数变量,分别赋值,并计算它们的和、差、积、商、余数。
public class BasicExercise1 { public static void main(String[] args) { int a = 10, b = 20; System.out.println("a + b = " + (a + b)); System.out.println("a - b = " + (a - b)); System.out.println("a * b = " + (a * b)); System.out.println("a / b = " + (a / b)); System.out.println("a % b = " + (a % b)); } }
-
声明一个整数变量,并使用自增、自减运算符对其进行操作。
public class BasicExercise2 { public static void main(String[] args) { int a = 10; System.out.println("a++ = " + (a++)); System.out.println("++a = " + (++a)); System.out.println("a-- = " + (a--)); System.out.println("--a = " + (--a)); } }
-
声明两个布尔变量,并使用逻辑运算符对它们进行操作。
public class BasicExercise3 { public static void main(String[] args) { boolean a = true, b = false; System.out.println("a && b -> " + (a && b)); System.out.println("a || b -> " + (a || b)); System.out.println("!a -> " + (!a)); } }
-
声明三个整数变量,并交换它们的值。
public class BasicExercise4 { public static void main(String[] args) { int a = 10, b = 20, c = 30; int temp = a; a = b; b = c; c = temp; System.out.println("a: " + a + ", b: " + b + ", c: " + c); } }
进阶题目
-
声明一个浮点数变量,并使用强制转换将其转换为整数。
public class AdvancedExercise1 { public static void main(String[] args) { double a = 10.5; int b = (int) a; System.out.println("b: " + b); } }
-
声明两个字符变量,并计算它们的ASCII码值之和。
public class AdvancedExercise2 { public static void main(String[] args) { char a = 'A', b = 'B'; int sum = a + b; System.out.println("ASCII码值之和: " + sum); } }
-
声明一个字符串变量,并将其转换为大写、小写形式。
public class AdvancedExercise3 { public static void main(String[] args) { String str = "Hello World"; System.out.println("大写: " + str.toUpperCase()); System.out.println("小写: " + str.toLowerCase()); } }
-
声明一个整数变量,并判断它是否为偶数。
public class AdvancedExercise4 { public static void main(String[] args) { int a = 10; if (a % 2 == 0) { System.out.println("a 是偶数"); } else { System.out.println("a 不是偶数"); } } }
Java的 if
语句
if
语句是Java中最基本的控制结构之一,用于根据条件执行代码块。下面是一些关于if
语句的详细讲解。
基本 if
语句
if (condition) {
// 当condition为true时执行此代码块
}
示例:
public class IfExample {
public static void main(String[] args) {
int number = 10;
if (number > 0) {
System.out.println("The number is positive.");
}
}
}
if-else
语句
如果需要在条件为false时执行另一个代码块,可以使用if-else
语句。
if (condition) {
// 当condition为true时执行此代码块
} else {
// 当condition为false时执行此代码块
}
示例:
public class IfElseExample {
public static void main(String[] args) {
int number = -10;
if (number > 0) {
System.out.println("The number is positive.");
} else {
System.out.println("The number is negative.");
}
}
}
if-else if-else
语句
当有多个条件需要判断时,可以使用if-else if-else
语句。
if (condition1) {
// 当condition1为true时执行此代码块
} else if (condition2) {
// 当condition2为true时执行此代码块
} else {
// 当上述条件都为false时执行此代码块
}
示例:
public class IfElseIfExample {
public static void main(String[] args) {
int number = 0;
if (number > 0) {
System.out.println("The number is positive.");
} else if (number < 0) {
System.out.println("The number is negative.");
} else {
System.out.println("The number is zero.");
}
}
}
嵌套 if
语句
if
语句可以嵌套在其他if
语句中,以处理更复杂的条件。
if (condition1) {
// 当condition1为true时执行此代码块
if (condition2) {
// 当condition1和condition2都为true时执行此代码块
}
}
示例:
public class NestedIfExample {
public static void main(String[] args) {
int number = 10;
if (number > 0) {
if (number % 2 == 0) {
System.out.println("The number is positive and even.");
} else {
System.out.println("The number is positive and odd.");
}
}
}
}
练习题
-
编写一个程序,判断一个给定的年份是否是闰年。
import java.util.Scanner; public class LeapYear { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个年份: "); int year = scanner.nextInt(); if (year % 4 == 0) { if (year % 100 == 0) { if (year % 400 == 0) { System.out.println(year + " 是闰年."); } else { System.out.println(year + " 不是闰年."); } } else { System.out.println(year + " 是闰年."); } } else { System.out.println(year + " 不是闰年."); } scanner.close(); } }
-
编写一个程序,提示用户输入一个字符,判断该字符是字母、数字还是其他字符。
import java.util.Scanner; public class CharacterType { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个字符: "); char ch = scanner.next().charAt(0); if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) { System.out.println(ch + " 是字母."); } else if (ch >= '0' && ch <= '9') { System.out.println(ch + " 是数字."); } else { System.out.println(ch + " 是其他字符."); } scanner.close(); } }
在编程中,循环结构用于重复执行一段代码块,直到特定条件为真。Java 中有三种主要的循环结构:for
循环、while
循环和 do-while
循环。以下是对这三种循环的详细讲解和示例。
七、循环结构
1. for
循环
for
循环是一种确定循环,即在开始时就知道循环将执行多少次。
语法
for (初始化语句; 条件判断; 更新语句) {
// 循环体
}
示例
打印1到10的数字:
public class ForLoopExample {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
解释
- 初始化语句:在循环开始前执行一次。通常用于初始化循环变量。
- 条件判断:每次循环开始前执行。如果条件为
true
,则执行循环体;如果为false
,则退出循环。 - 更新语句:每次循环结束后执行。通常用于更新循环变量。
2. while
循环
while
循环是一种条件循环,即在每次循环开始前检查条件,如果条件为真则执行循环体。
语法
while (条件判断) {
// 循环体
}
示例
打印1到10的数字:
public class WhileLoopExample {
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
System.out.println(i);
i++;
}
}
}
解释
- 条件判断:每次循环开始前执行。如果条件为
true
,则执行循环体;如果为false
,则退出循环。
3. do-while
循环
do-while
循环是一种至少执行一次的循环,即先执行循环体,然后检查条件。如果条件为真则继续执行循环体。
语法
do {
// 循环体
} while (条件判断);
示例
打印1到10的数字:
public class DoWhileLoopExample {
public static void main(String[] args) {
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 10);
}
}
解释
- 循环体:先执行一次。
- 条件判断:每次循环结束后执行。如果条件为
true
,则继续执行循环体;如果为false
,则退出循环。
循环中的控制语句
在循环中,有时需要控制循环的执行,例如提前退出循环或跳过某次循环。Java 提供了 break
和 continue
语句来实现这些功能。
break
语句
break
语句用于立即退出循环,不再执行循环体中的剩余代码和后续的循环。
示例
找到并打印第一个大于5的数字,然后退出循环:
public class BreakExample {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i > 5) {
System.out.println("第一个大于5的数字是: " + i);
break;
}
}
}
}
continue
语句
continue
语句用于跳过当前循环的剩余代码,立即开始下一次循环。
示例
打印1到10的数字,但跳过5:
public class ContinueExample {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
continue;
}
System.out.println(i);
}
}
}
练习题目
- 使用
for
循环打印1到100之间所有的偶数。 - 使用
while
循环计算1到100的和。 - 使用
do-while
循环打印10到1的数字。 - 编写一个程序,使用
for
循环查找并打印1到100之间的所有质数(素数)。 - 编写一个程序,使用
while
循环查找并打印1到100之间的所有质数(素数)。 - 编写一个程序,使用
for
循环和continue
语句打印1到10的数字,但跳过3和6。 - 编写一个程序,使用
while
循环和break
语句查找并打印1到10中第一个大于7的数字,然后退出循环。
参考答案
1. 使用 for
循环打印1到100之间所有的偶数
public class EvenNumbers {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}
}
}
2. 使用 while
循环计算1到100的和
public class SumOfNumbers {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i <= 100) {
sum += i;
i++;
}
System.out.println("1到100的和是: " + sum);
}
}
3. 使用 do-while
循环打印10到1的数字
public class Countdown {
public static void main(String[] args) {
int i = 10;
do {
System.out.println(i);
i--;
} while (i > 0);
}
}
4. 使用 for
循环查找并打印1到100之间的所有质数
public class PrimeNumbers {
public static void main(String[] args) {
for (int i = 2; i <= 100; i++) {
boolean isPrime = true;
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
System.out.println(i);
}
}
}
}
5. 使用 while
循环查找并打印1到100之间的所有质数
public class PrimeNumbersWhile {
public static void main(String[] args) {
int i = 2;
while (i <= 100) {
boolean isPrime = true;
int j = 2;
while (j <= i / 2) {
if (i % j == 0) {
isPrime = false;
break;
}
j++;
}
if (isPrime) {
System.out.println(i);
}
i++;
}
}
}
6. 使用 for
循环和 continue
语句打印1到10的数字,但跳过3和6
public class SkipNumbers {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
if (i == 3 || i == 6) {
continue;
}
System.out.println(i);
}
}
}
7. 使用 while
循环和 break
语句查找并打印1到10中第一个大于7的数字
public class FirstNumberGreaterThanSeven {
public static void main(String[] args) {
int i = 1;
while (i <= 10) {
if (i > 7) {
System.out.println("第一个大于7的数字是: " + i);
break;
}
i++;
}
}
}