在循环控制中不要使用浮点数据类型来比较大小
| |
| double item = 1.0; |
| double sum = 0; |
| while(item == 0){ |
| item -= 0.1; |
| sum += item; |
| } |
| System.out.println("The sum is : " + sum); |
在计算机中无法使用二进制精确描述十进制整数所以只能使用近似值来表示。
取余操作; 取整操作
| int i = 1 / 2; |
| int i = 1 / 2.0; |
| int i = 1.0 / 2; |
| int i = 1 % 2; |
| int i = 1 % 2.0; |
System.out.println(i++); 和 System.out.println(++i); 都会都本身的i造成印象,Java中是值传递
| int i = 2; |
| System.out.println(i++); |
| System.out.println("i = " + i); |
"()"并不会对 i++ 造成优先级上的影响
| int i = 2; |
| System.out.println(i++); |
| |
| int num = 2; |
| System.out.println((num++)); |
for循环的执行顺序
for(【Initial Operation】;【Loop Condition】; 【Operation After Loop Body】){
【Loop Body】
}
🌈 Sequence:
1. 【Initial Operation】
2. 【Loop Condition】
3. 【Loop Body】
4. 【Operation After Loop Body】 for(【】;【】;【最后一步】){ 【】}
示例:
| Scanner input = new Scanner(System.in); |
| int number, sum = 0, count; |
| |
| for(count = 0; count < 5; System.out.println("=》 count: " + count), count++, System.out.println("-> count: " + count)){ |
| number = input.nextInt(); |
| sum += number; |
| } |
| System.out.println("sum is " + sum); |
| System.out.println("count is " + count); |
循环中continue注意事项
保证循环起始之后和continue之间存在sentinel卫变量的更迭,但更迭造成的结果要考虑到不要出现越界情况
| private static void getInfo01(){ |
| int sum = 0; |
| for(int i = 0; i < 4; i ++){ |
| if(i % 3 == 0) continue; |
| sum += i; |
| } |
| System.out.println("The sum is : " + sum); |
| } |
| |
| private static void getInfo03(){ 【🍎】 |
| int i = 0, sum = 0; |
| while(i < 4){ |
| i++; |
| if(i % 3 == 0) continue;; |
| sum += i; |
| } |
| System.out.println("The sum is : " + sum); |
| } |
| |
| |
| private static void getInfo02(){ |
| int i = 0, sum = 0; |
| while(++i < 4){ |
| if(i % 3 == 0) continue; |
| sum += i; |
| } |
| System.out.println("The sum is : " + sum); |
| } |
| |
分支语句同时满足只会满足首先满足的语句
| int num = 10; |
| int bestG = 0; |
| int secondG = 0; |
| if(num > bestG){ |
| bestG = num; |
| }else if(num > secondG){ |
| secondG = num; |
| } |
| System.out.println("bestG: " + bestG + ", secondG: " + secondG); |
示例:
| private static void getBestAndSecondStudentInfo(){ |
| Scanner input = new Scanner(System.in); |
| System.out.println("the number of students( >=2 ): "); |
| int num = input.nextInt(); |
| |
| String bestStuName = ""; |
| String secondStuName = ""; |
| int bestGrade = 0; |
| int secondGrade = 0; |
| |
| String tempStuName = ""; |
| int tempGrade = 0; |
| for(int i = 1; i <= num; i++){ |
| System.out.println("student's name and grade: "); |
| tempStuName = input.next(); |
| tempGrade = input.nextInt(); |
| if(i == 1){ |
| bestGrade = tempGrade; |
| bestStuName = tempStuName; |
| }else if(i == 2){ |
| if(tempGrade > bestGrade){ |
| String tn = bestStuName; |
| int tg = bestGrade; |
| bestGrade = tempGrade; |
| bestStuName = tempStuName; |
| secondStuName = tn; |
| secondGrade = tg; |
| }else{ |
| secondGrade = tempGrade; |
| secondStuName = tempStuName; |
| } |
| |
| }else{ |
| if(tempGrade > bestGrade){ |
| bestGrade = tempGrade; |
| bestStuName = tempStuName; |
| }else if(tempGrade > secondGrade){ |
| secondGrade = tempGrade; |
| secondStuName = tempStuName; |
| } |
| } |
| |
| } |
| System.out.println("bestStudentName: " + bestStuName + ", bestGrade: " + bestGrade); |
| System.out.println("secondStudentName: " + secondStuName + ", secondStudentName: " + secondGrade); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
成员变量在定义之后系统会给予初始值而局部变量需要手动赋予初始值🍎

对带有返回值的方法,return语句是必须的

删除if(n < 0)
即可, 这样编译器将发现不管if语句如何执行,总可以执行到return语句。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具