更基本的语法 - 循环和异常
2024-08-22 20:51:15
本周是无效的一周之一。我在训练营内容上没有取得太大进展,但我试图涵盖这个模块的最后一个理论单元:
java 而且大部分来自 c 与高级语言一样,有三种基本类型的重复循环(著名循环):for、while 和 do-while。
for 当我们提前知道将其用作可迭代对象(如数组)的元素的大小时。这个元素可能会动态变化(例如,从 api 因此,接收数据可能是作为一名开发人员,您不确定能迭代多少元素,但代码会知道。其基本结构如下:
int[] numbers = {1, 2, 3, 4, 5}; for (int counter = 0; counter <p>Int计数器=0的第一部分就是我们所说的<em>count变量</em>。 <br> 一定有一个更漂亮的名字,但这可以解释它的作用。她基本上...数了数。 </p> <p><img src="https://img.php.cn/upload/article/000/887/227/172419961262659.gif" alt="语法更基本 - 循环和异常"></p> <p>我们将其初始化为 0,在第二部分中,我们将其与之结合 <em>array</em> 比较数字的大小。这就是我们所说的<em>condition</em>。这就是我们所说的<em>condition</em>。只要这个条件是真的(即返回真的),<em>loop</em>就会继续。 <br> 它不一定需要与某些迭代进行比较,但通常以这种方式使用。最后,我们有<em>counter change</em>,它可以是增量或减量。这种变化不必一一进行,但这是最常见的事情。</p> <p>另一方面,while 循环不提供这些有限的迭代次数。它检查条件是否真实,如果是,则采取一些操作。其结构如下:<br></p> <pre class="brush:php;toolbar:false">boolean podejavascriptnoback = false; while (!podejavascriptnoback) { system.out.println("tá proibido javascript no back-end."); };
在循环声明中的括号之间条件,测试它是否会继续。只要这种情况的结果是真实的,大括号之间的操作就会进行。这些信息很重要,因为我们可以得出一些结论:
- loop只有当条件正确时,才会发生动作。如果条件值在任何给定的迭代中发生变化(从 true 到 false),循环中断,不执行循环操作;
- 可能有一些loop不执行任何操作,因为自第一次迭代以来,条件被评估为 false;
- 如果我们不采取任何行动来改变条件,我们会发现自己面临着无限的局面loop.
do-while 与 while 非常相似,不同之处在于检查before条件下的操作。这意味着循环将在中断前至少执行一个操作。语法和 while 非常相似:
boolean condition = true; do { system.out.println("i'm inside a loop tee-hee!"); } while (condition);
就像while一样,如果没有任何动作可以改变条件我们将处理无限的结果loop.# ??#
为了更好地控制循环过程,仍然有关键词“break”和“continue”。 break 并且中断了整个循环 continue 只中断当前迭代。例如:
for (int i = 0; i 在这个例子中,for 将操作直到计数器 i 大于或等于数字 每次迭代时,当前的计数器都会打印在控制台上。但当计数器等于4时,循环就会中断,最后两个数字就不会打印了。<p> </p>假设你现在需要在控制台上打印 1 到 10 的奇数。我们可以继续使用以下结构:<p> <br></p><pre class="brush:php;toolbar:false">for (int i = 0; i 即从0到10,<p>loop<em>将使用</em>module<strong>检查计数器是否可以2整除。如果是,循环将跳到下一个迭代,如果不是, i 该值将在终端中打印。如果是,循环将跳到下一个迭代,如果不是, i 该值将在终端中打印。</strong> </p>到目前为止还算平静吧?让我们继续处理异常。<p> </p>在开发应用程序的过程中,难免会出现问题。在 java 在此期间,严重问题和简单问题之间存在差异。严重的问题会影响应用程序所在的系统或环境(错误),通常是不可恢复的,而更简单的问题是应用程序试图以某种方式解决的问题(例外)。#? ?# <p>假如有错误,可能是物理问题(例如(例如) outofmemoryerror)、可用资源耗尽(例如 stack<a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/72718.html" target="_blank">overflow</a>error),甚至是 jvm 本身的错误(内部错误)。需要注意的是,在这种情况下,没有办法治疗。需要注意的是,在这种情况下,没有办法治疗。这种情况会破坏应用程序,并通常使其进入不可恢复的状态。</p> <p>但是有一种问题</p>可以<p>恢复:异常。异常是一个可以捕获和正确处理的问题,这样我们的程序就不会在客户面前崩溃。异常的原因有很多,包括基础设施问题(如读写数据,连接到 sql 数据库等)或逻辑问题(如无效参数错误)。<strong> </strong>try-catch块通常用于执行错误处理。该结构试图执行一个操作(在 try 块中描述),如果发现异常,它会捕获问题并处理它(在 catch 块中描述)。遵循以下语法:</p> <p> </p><pre class="brush:php;toolbar:false">try { double result = 10 / 0; //isso vai lançar um arithmeticexception system.out.println(result); } catch (exception e) { system.out.println("não é possível pidir por 0, mané."); }
我们可以声明几个链接在一起的catch块,并尝试根据发现的错误进行详细处理:
try { int result = 10 / 0; system.out.println(result); } catch (arithmeticexception e) { system.out.println("não é possível pidir por 0, mané."); } catch (nullpointerexception e) { system.out.println("alguma coisa que você informou veio nula, bicho."); } catch (exception e) { system.out.println("deu ruim, irmão. um erro genérico ocorreu: " + e.getmessage()); }
此外,在整个结构的末尾,无论流程采用的路径如何,我们都可以声明一个始终执行的代码块:finally:
try { int result = 10 / 0; system.out.println(result); } catch (arithmeticexception e) { system.out.println("não é possível pidir por 0, mané."); } catch (nullpointerexception e) { system.out.println("alguma coisa que você informou veio nula, bicho."); } catch (exception e) { system.out.println("deu ruim, irmão. um erro genérico ocorreu: " + e.getmessage()); } finally { system.out.println("cabô."); }
在这个例子中,代码将尝试 10 除以 0.然后,它将进入第一个 catch 块并打印“can't split by 0, dude.
最后,输入finally块并打印“cabô".无论走哪条路,无论try成功与否,finally都将被执行。 就这些吗?不! java 没什么是简单的。
异常可分为两种:verified异常(异常)和非异常。编译器需要处理异常,以防止超出代码范围的条件影响应用程序流程。例如,程序中使用的数据库可能有问题,连接可能会失败。 java 不会简单地显示错误,而是要求您执行以下操作:
public class DatabaseExample { public static void main(String[] args){ try { Connection conn = getConnection(); //executa alguma ação aqui... } catch (SQLException e) { System.out.println("Não foi possível conectar ao banco de dados. Erro: " + e.getMessage()); } } public static Connection getConnection() throws SQLExeption { String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "user"; String password = "mySuperSecretPassword"; //por favor não armazenem senhas no código //isso pode lançar um erro de SQL return DriverManager.getConnection(url, user, password); } }
getconnection() 该方法尝试使用提供的证据连接到数据库,但如果任何时候都有问题(数据库在offline中
,如果凭证错误,机器与网络断开连接等。),将抛出异常。 main 方法调用 getconnection()捕获此异常并通知用户在建立连接时出现错误,而不仅仅是显示堆栈跟踪。 为了保护应用程序免受开发人员无法控制的错误的影响,使应用程序更具弹性和抗故障能力,编译器需要实施此处理。
不需要检查异常
mandatorily处理异常。这些都是开发人员控制下的类方法。一般来说,代码中有某种类型的错误(逻辑或 api 错误使用)。其中一些例子是著名的 illegalargumentexception、arrayindexoutofboundsexception 和 nullpointerexception。 这是否意味着如果编译器不抱怨,我就不需要处理它? 不,对吧?最好有一个友好的错误消息,让用户知道发生了什么,而不是把它发到这里:
成功地将所有内容放入try-catch中。
最后,
debugging上面有一个用途 intellij 和 eclipse 它的模块比理论更实用。但是,我不能向文本媒体展示指令给出的信息。以后我会写一篇关于java调试的文章。 本单元剩余的两个模块非常实用(
finally!)。下一篇文章会有很多代码。到时候见!
以上是更基本的语法 - 更多关于图灵教育的详细信息,请关注图灵教育的其他相关文章!