首页 > 图灵资讯 > 技术篇>正文

更基本的语法 - 循环和异常

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.");
};

在循环声明中的括号之间条件,测试它是否会继续。只要这种情况的结果是真实的,大括号之间的操作就会进行。这些信息很重要,因为我们可以得出一些结论:

  1. loop只有当条件正确时,才会发生动作。如果条件值在任何给定的迭代中发生变化(从 true 到 false),循环中断,不执行循环操作;
  2. 可能有一些loop不执行任何操作,因为自第一次迭代以来,条件被评估为 false;
  3. 如果我们不采取任何行动来改变条件,我们会发现自己面临着无限的局面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!

)。下一篇文章会有很多代码。到时候见!

以上是更基本的语法 - 更多关于图灵教育的详细信息,请关注图灵教育的其他相关文章!

上一篇 改进了&#printf&#调试
下一篇 返回列表

文章素材均来源于网络,如有侵权,请联系管理员删除。