英特尔网站开发框架杭州住房和城市建设局网站

张小明 2026/1/12 13:43:26
英特尔网站开发框架,杭州住房和城市建设局网站,营销型网站设计方案,台州网站推广优化一前言今天依旧更新有关JAVA基础的知识#xff0c;唉。自从更新JAVA之后浏览量什么的都下降了#xff0c;可能是大家也不喜欢这么枯燥的基础学习吧#xff0c;但是基础还是很重要的#xff0c;明天和后天可能会停更#xff0c;因为我要回家了。二主要内容if条件判断#…一前言今天依旧更新有关JAVA基础的知识唉。自从更新JAVA之后浏览量什么的都下降了可能是大家也不喜欢这么枯燥的基础学习吧但是基础还是很重要的明天和后天可能会停更因为我要回家了。二主要内容if条件判断和c基本一致在Java程序中如果要根据条件来决定是否执行某一段代码就需要if语句。if语句的基本语法是if (条件) { // 条件满足时执行 }根据if的计算结果true还是falseJVM决定是否执行if语句块即花括号{}包含的所有语句。让我们来看一个例子// 条件判断 public class Main { public static void main(String[] args) { int n 70; if (n 60) { System.out.println(及格了); } System.out.println(END); } }当条件n 60计算结果为true时if语句块被执行将打印及格了否则if语句块将被跳过。修改n的值可以看到执行效果。注意到if语句包含的块可以包含多条语句// 条件判断 public class Main { public static void main(String[] args) { int n 70; if (n 60) { System.out.println(及格了); System.out.println(恭喜你); } System.out.println(END); } }当if语句块只有一行语句时可以省略花括号{}// 条件判断 public class Main { public static void main(String[] args) { int n 70; if (n 60) System.out.println(及格了); System.out.println(END); } }但是省略花括号并不总是一个好主意。假设某个时候突然想给if语句块增加一条语句时// 条件判断 public class Main { public static void main(String[] args) { int n 50; if (n 60) System.out.println(及格了); System.out.println(恭喜你); // 注意这条语句不是if语句块的一部分 System.out.println(END); } }由于使用缩进格式很容易把两行语句都看成if语句的执行块但实际上只有第一行语句是if的执行块。在使用git这些版本控制系统自动合并时更容易出问题所以不推荐忽略花括号的写法。这个就是书写规范的问题了这个地方也很容易出题因为不加括号if只能控制它下面的一条语句第二条就不行了大家注意elseif语句还可以编写一个else { ... }当条件判断为false时将执行else的语句块// 条件判断 public class Main { public static void main(String[] args) { int n 70; if (n 60) { System.out.println(及格了); } else { System.out.println(挂科了); } System.out.println(END); } }修改上述代码n的值观察if条件为true或false时程序执行的语句块。注意else不是必须的。还可以用多个if ... else if ...串联。例如// 条件判断 public class Main { public static void main(String[] args) { int n 70; if (n 90) { System.out.println(优秀); } else if (n 60) { System.out.println(及格了); } else { System.out.println(挂科了); } System.out.println(END); } }串联的效果其实相当于if (n 90) { // n 90为true: System.out.println(优秀); } else { // n 90为false: if (n 60) { // n 60为true: System.out.println(及格了); } else { // n 60为false: System.out.println(挂科了); } }在串联使多个if时要特别注意判断顺序。观察下面的代码// 条件判断 public class Main { public static void main(String[] args) { int n 100; if (n 60) { System.out.println(及格了); } else if (n 90) { System.out.println(优秀); } else { System.out.println(挂科了); } } }执行发现n 100时满足条件n 90但输出的不是优秀而是及格了原因是if语句从上到下执行时先判断n 60成功后后续else不再执行因此if (n 90)没有机会执行了。正确的方式是按照判断范围从大到小依次判断// 从大到小依次判断 if (n 90) { // ... } else if (n 60) { // ... } else { // ... }或者改写成从小到大依次判断// 从小到大依次判断 if (n 60) { // ... } else if (n 90) { // ... } else { // ... }使用if时还要特别注意边界条件。例如// 条件判断 public class Main { public static void main(String[] args) { int n 90; if (n 90) { System.out.println(优秀); } else if (n 60) { System.out.println(及格了); } else { System.out.println(挂科了); } } }假设我们期望90分或更高为“优秀”上述代码输出的却是“及格”原因是和效果是不同的。前面讲过了浮点数在计算机中常常无法精确表示并且计算可能出现误差因此判断浮点数相等用判断不靠谱// 条件判断 public class Main { public static void main(String[] args) { double x 1 - 9.0 / 10; if (x 0.1) { System.out.println(x is 0.1); } else { System.out.println(x is NOT 0.1); } } }正确的方法是利用差值小于某个临界值来判断// 条件判断 public class Main { public static void main(String[] args) { double x 1 - 9.0 / 10; if (Math.abs(x - 0.1) 0.00001) { System.out.println(x is 0.1); } else { System.out.println(x is NOT 0.1); } } }判断引用类型相等JAVA 特有在Java中判断值类型的变量是否相等可以使用运算符。但是判断引用类型的变量是否相等表示“引用是否相等”或者说是否指向同一个对象。例如下面的两个String类型它们的内容是相同的但是分别指向不同的对象用判断结果为false// 条件判断 public class Main { public static void main(String[] args) { String s1 hello; String s2 HELLO.toLowerCase(); System.out.println(s1); System.out.println(s2); if (s1 s2) { System.out.println(s1 s2); } else { System.out.println(s1 ! s2); } } }要判断引用类型的变量内容是否相等必须使用equals()方法有点类似于c中的strcmp// 条件判断 public class Main { public static void main(String[] args) { String s1 hello; String s2 HELLO.toLowerCase();这里的toLowerCase是一个方法变小写tolower System.out.println(s1); System.out.println(s2); if (s1.equals(s2)) { System.out.println(s1 equals s2); } else { System.out.println(s1 not equals s2); } } }注意执行语句s1.equals(s2)时如果变量s1为null会报NullPointerException// 条件判断 public class Main { public static void main(String[] args) { String s1 null; if (s1.equals(hello)) { System.out.println(hello); } } }要避免NullPointerException错误可以利用短路运算符// 条件判断 public class Main { public static void main(String[] args) { String s1 null; if (s1 ! null s1.equals(hello)) { System.out.println(hello); } } }还可以把一定不是null的对象hello放到前面例如if (hello.equals(s)) { ... }。switch多重选择基本功能一致我这里只讲不一样的同时注意上述“翻译”只有在switch语句中对每个case正确编写了break语句才能对应得上。使用switch时注意case语句并没有花括号{}而且case语句具有“穿透性”漏写break将导致意想不到的结果这个也是一个重要的考点没加break会一直执行的不管变量是否匹配case// switch public class Main { public static void main(String[] args) { int option 2; switch (option) { case 1: System.out.println(Selected 1); case 2: System.out.println(Selected 2); case 3: System.out.println(Selected 3); default: System.out.println(Selected other); } } }当option 2时将依次输出Selected 2、Selected 3、Selected other原因是从匹配到case 2开始后续语句将全部执行直到遇到break语句。因此任何时候都不要忘记写break。switch语句还可以匹配字符串。字符串匹配时是比较“内容相等”。例如// switch public class Main { public static void main(String[] args) { String fruit apple; switch (fruit) { case apple: System.out.println(Selected apple); break; case pear: System.out.println(Selected pear); break; case mango: System.out.println(Selected mango); break; default: System.out.println(No fruit selected); break; } } }switch语句还可以使用枚举类型枚举类型我们在后面讲解。switch表达式使用switch时如果遗漏了break就会造成严重的逻辑错误而且不易在源代码中发现错误。从Java 12开始switch语句升级为更简洁的表达式语法使用类似模式匹配Pattern Matching的方法保证只有一种路径会被执行并且不需要break语句这个就很方便了// switch public class Main { public static void main(String[] args) { String fruit apple; switch (fruit) { case apple - System.out.println(Selected apple); case pear - System.out.println(Selected pear); case mango - { System.out.println(Selected mango); System.out.println(Good choice!); } default - System.out.println(No fruit selected); } } }注意新语法使用-如果有多条语句需要用{}括起来。不要写break语句因为新语法只会执行匹配的语句没有穿透效应。很多时候我们还可能用switch语句给某个变量赋值。例如int opt; switch (fruit) { case apple: opt 1; break; case pear: case mango: opt 2; break; default: opt 0; break; }使用新的switch语法不但不需要break还可以直接返回值。把上面的代码改写如下// switch public class Main { public static void main(String[] args) { String fruit apple; int opt switch (fruit) { case apple - 1; case pear, mango - 2; default - 0; }; // 注意赋值语句要以;结束 System.out.println(opt opt); } }这样可以获得更简洁的代码。yield大多数时候在switch表达式内部我们会返回简单的值。但是如果需要复杂的语句我们也可以写很多语句放到{...}里然后用yield返回一个值作为switch语句的返回值// yield public class Main { public static void main(String[] args) { String fruit orange; int opt switch (fruit) { case apple - 1; case pear, mango - 2; default - { int code fruit.hashCode(); yield code; // switch语句返回值 } }; System.out.println(opt opt); } }while和do-while循环和c语言一致不用单独在讲ava提供的while条件循环。它的基本用法是while (条件表达式) { 循环语句 } // 继续执行后续代码while循环在每次循环开始前首先判断条件是否成立。如果计算结果为true就把循环体内的语句执行一遍如果计算结果为false那就直接跳到while循环的末尾继续往下执行。for循环基本形式与c语言一致不过多赘述for each循环有点像替代指针的功能for循环经常用来遍历数组因为通过计数器可以根据索引来访问数组的每个元素int[] ns { 1, 4, 9, 16, 25 }; for (int i0; ins.length; i) { System.out.println(ns[i]); }但是很多时候我们实际上真正想要访问的是数组每个元素的值。Java还提供了另一种for each循环它可以更简单地遍历数组// for each public class Main { public static void main(String[] args) { int[] ns { 1, 4, 9, 16, 25 }; for (int n : ns) { System.out.println(n); } } }和for循环相比for each循环的变量n不再是计数器而是直接对应到数组的每个元素。for each循环的写法也更简洁。但是for each循环无法指定遍历顺序也无法获取数组的索引。除了数组外for each循环能够遍历所有“可迭代”的数据类型包括后面会介绍的List、Map等。break和continue和c语言基本一致但是还是想讲一下break在循环过程中可以使用break语句跳出当前循环。我们来看一个例子// break public class Main { public static void main(String[] args) { int sum 0; for (int i1; ; i) { sum sum i; if (i 100) { break; } } System.out.println(sum); } }使用for循环计算从1到100时我们并没有在for()中设置循环退出的检测条件。但是在循环内部我们用if判断如果i100就通过break退出循环。因此break语句通常都是配合if语句使用。要特别注意break语句总是跳出自己所在的那一层循环。例如// break public class Main { public static void main(String[] args) { for (int i1; i10; i) { System.out.println(i i); for (int j1; j10; j) { System.out.println(j j); if (j i) { break; } } // break跳到这里 System.out.println(breaked); } } }上面的代码是两个for循环嵌套。因为break语句位于内层的for循环因此它会跳出内层for循环但不会跳出外层for循环。continuebreak会跳出当前循环也就是整个循环都不会执行了。而continue则是提前结束本次循环直接继续执行下次循环。我们看一个例子// continue public class Main { public static void main(String[] args) { int sum 0; for (int i1; i10; i) { System.out.println(begin i i); if (i % 2 0) { continue; // continue语句会结束本次循环 } sum sum i; System.out.println(end i i); } System.out.println(sum); // 25 } }注意观察continue语句的效果。当i为奇数时完整地执行了整个循环因此会打印begin i1和end i1。在i为偶数时continue语句会提前结束本次循环因此会打印begin i2但不会打印end i2。在多层嵌套的循环中continue语句同样是结束本次自己所在的循环。小结break语句可以跳出当前循环break语句通常配合if在满足条件时提前结束整个循环break语句总是跳出最近的一层循环continue语句可以提前结束本次循环continue语句通常配合if在满足条件时提前结束本次循环。三最后一语今天就先讲这么多昨天应该是讲太多了提前祝大家周末快乐世界会变但是我始终如一我带着悲哀的自负想道。博尔林斯/《阿菜夫》感谢观看共勉
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

软件开发可以做网站么制作网页的软件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Node.js工具,自动运行npm fund命令并解析输出结果。功能包括:1) 扫描项目package.json中的所有依赖 2) 对每个依赖执行npm fund获取资金信息 3) 将结…

张小明 2025/12/26 13:49:09 网站建设

网站模板类型网站别人做的我自己怎么续费

Webhook.site开源版本完整部署指南:私有化Webhook接收解决方案 【免费下载链接】webhook.site webhooksite/webhook.site: 是一个简单的 Webhook 接收和回调服务器,它可以接收 HTTP POST 请求并将其转发到指定的回调 URL。适合用于实现简单的 Webhook 接…

张小明 2025/12/26 13:49:14 网站建设

网站建设系统多少钱怎么注册一个属于自己的网站

这个错误是因为 inject() 只能在组件的 setup() 函数或函数式组件中使用。 下面是常见错误和解决方案&#xff1a;错误1&#xff1a;在 setup 外部使用 inject<script setup> import { inject, onMounted } from vue// ❌ 错误&#xff1a;在 onMounted 回调中直接调用 i…

张小明 2025/12/26 13:49:12 网站建设

做网站框架怎么样建立学校网站

如何快速掌握Hyperion安卓调试工具&#xff1a;完整入门指南 【免费下载链接】Hyperion-Android App Debugging & Inspection Tool for Android 项目地址: https://gitcode.com/gh_mirrors/hy/Hyperion-Android Hyperion是一款功能强大的安卓应用调试工具&#xff0…

张小明 2025/12/26 13:49:11 网站建设

注册网站需要什么程序怎么做网站的百度权重

老旧安卓TV秒变全能服务器&#xff1a;RK3568设备Armbian改造实战指南 【免费下载链接】amlogic-s9xxx-armbian amlogic-s9xxx-armbian: 该项目提供了为Amlogic、Rockchip和Allwinner盒子构建的Armbian系统镜像&#xff0c;支持多种设备&#xff0c;允许用户将安卓TV系统更换为…

张小明 2025/12/26 13:49:12 网站建设

wordpress素材下载站饿了么企业网站

Wan2.2-T2V-A14B在古生物复原动画中的科学复现能力探析 想象一下&#xff1a;一块距今2.3亿年的犬齿兽化石静静陈列在博物馆展柜中&#xff0c;骨骼结构清晰却无声无息。而只需一段基于最新研究成果撰写的中文描述——“三叠纪中期的犬齿兽沿河床缓行&#xff0c;四肢半直立&am…

张小明 2026/1/11 2:58:09 网站建设