关于建设教体局网站的申请济南企业营销型网站建设

张小明 2026/1/16 17:30:21
关于建设教体局网站的申请,济南企业营销型网站建设,商贸公司起名字大全免费,包头市做网站公司一前言今天依旧更新有关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进行投诉反馈,一经查实,立即删除!

免费app做logo的网站wordpress安装提示500错误

在人工智能多模态交互领域,百度最新推出的ERNIE 4.5系列大语言模型正引发行业变革。其中,作为系列核心成员的ERNIE-4.5-VL-28B-A3B-Paddle多模态模型,凭借突破性的技术架构与全面优化的性能表现,重新定义了跨模态信息处理的技术标…

张小明 2026/1/15 14:06:47 网站建设

网站手机端制作软件东莞seo网络公司

如何评审一个TensorRT相关的Pull Request? 在现代AI系统中,推理性能往往直接决定用户体验和服务成本。尤其是在推荐系统、自动驾驶或实时视频分析这类对延迟极度敏感的场景里,哪怕几十毫秒的优化差异,也可能带来吞吐量翻倍或服务器…

张小明 2026/1/15 23:42:41 网站建设

贵州省建设厅考试网站基层建设是哪个网站的

ComfyUI节点扩展开发:集成vLLM推理接口 在AI工作流日益复杂的今天,一个直观的图形化界面是否还能支撑起真正的生产级应用?这是每个使用ComfyUI的开发者都会面对的问题。我们习惯了拖拽节点、连接数据流带来的便捷,但当模型越来越大…

张小明 2026/1/7 4:54:26 网站建设

罗湖网站设计费用中国中铁建设集团门户网

还在为找不到合适的字幕而烦恼吗?每次观影都要手动搜索、下载、调整字幕,不仅耗时耗力,还常常因为字幕质量参差不齐而影响观影体验。现在,通过Kodi智能字幕插件,这些问题都能得到完美解决。 【免费下载链接】zimuku_fo…

张小明 2026/1/7 5:36:32 网站建设

网站seo优化建议网站建设协议书是否贴花

在学术的金字塔尖,发表一篇高质量的期刊论文是每一位研究者梦寐以求的成就。然而,从选题立意、材料组织到结构搭建、语言润色,每一步都充满了挑战。您是否曾为找不到合适的投稿目标而迷茫?是否因对期刊要求不熟悉而屡投屡败&#…

张小明 2026/1/9 1:59:50 网站建设