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);// 关闭 Scannerscanner.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 的值赋值给 ca = b; // 将 b 的值赋值给 ab = c; // 将 c 的值赋值给 bSystem.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++;}}
}