java中forexample_Java中的for循环——通过示例学习Java编程(9)

作者:CHAITANYA SINGH

循环用于反复执行同一组语句,直到满足特定条件为止。在Java中,我们有三种类型的基本循环:for、while和do-while。在本教程中,我们将学习如何在Java中使用for循环(for loop)。

for循环的语法:

for(初始化initialization; 循环条件condition; 递增/递减increment/decrement)

{

statement(s);

}

for循环的执行流程

当程序在运行的时候,解释器一直在跟踪要执行的语句,我们称之为控制流,或者程序的执行流程。

fa73b341d557

第一步:在for循环中,首先进行初始化,在整个for循环中,初始化部分的语句只在开始的时候执行一次。

第二步:在每次迭代时评估for循环中的条件,如果条件为true(真)则执行循环体内的语句。一旦条件返回false(假),for循环中的语句就不会执行,程序就跳到for循环外面的语句上运行。

第三步:每次执行for循环体后,程序回头执行for循环的递增/递减部分,更新循环计数器。

第四步:第三步后,程序跳转到第二步,重新评估循环条件,决定是继续执行在for循环内部的语句还是跳出for循环执行后面的语句。

简单for循环示例

classForLoopExample {

publicstaticvoidmain(String args[]){

for(inti=10; i>1; i--){

System.out.println("The value of i is: "+i);

}

}

}

输出:

The value of i is: 10

The value of i is: 9

The value of i is: 8

The value of i is: 7

The value of i is: 6

The value of i is: 5

The value of i is: 4

The value of i is: 3

The value of i is: 2

在上面的程序中:

int i = 1是初始化表达式;i > 1是否继续循环的条件(布尔表达式,满足条件就继续循环,不满足条件就跳出循环);i-是递减操作

死循环

循环条件的布尔表达式和递增/递减运算之间的互相协调非常重要,现在让我们来看看下面这个例子:

classForLoopExample2 {

publicstaticvoidmain(String args[]){

for(inti=1; i>=1; i++){

System.out.println("The value of i is: "+i);

}

}

}

这是一个死循环,我们初始化里给变量i赋值为1,循环条件是i>=1,因为i的值是1,后面的递增运算i++只能让变量i的值越来越大,所以这个循环条件i>=1永远都不会返回false。这最终会导致死循环条件。因此可见,增量/递减操作的结果必须是能确保在某个时间点上,循环条件的返回值为false,这样程序才可以跳出这个for循环。

下面是另一个for循环的死循环的例子:

// infinite loop

for( ; ; ) {

// statement(s)

}

用for循环遍历数组(array)的例子:

在这里,我们使用for循环遍历和显示数组里面的每个元素。

classForLoopExample3 {

publicstaticvoidmain(String args[]){

intarr[]={2,11,45,9};

//i starts with 0 as array index starts with 0 too

for(inti=0; i

System.out.println(arr[i]);

}

}

}

输出:

2

11

45

9

增强型for循环

当您想要遍历数组/集合里面的每个元素时,增强型的for循环很有用,非常易于编写和理解。

让我们采用上面编写的相同示例,并使用增强型for循环来重写它。

classForLoopExample3 {

publicstaticvoidmain(String args[]){

intarr[]={2,11,45,9};

for(intnum : arr) {

System.out.println(num);

}

}

}

输出:

2

11

45

9

注:在上面的示例中,我在增强型的for循环中将变量num的数据类型声明为int(整数型)。我们将根据数组的数据类型来决定如何声明这个变量的数据类型。例如,String类型的增强型for循环需要将这个变量声明为String,如下所示:

String arr[]={"hi","hello","bye"};

for(String str : arr) {

System.out.println(str);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您想了解如何使用Java生成P10证书请求,是吗? 首先,您需要使用Java的KeyPairGenerator类生成一对公私钥对。然后,使用这对密钥创建一个PKCS10CertificationRequest对象,该对象表示P10证书请求。 以下是Java代码示例: ``` import java.security.*; import java.security.cert.X509Certificate; import org.bouncycastle.asn1.x500.X500Name; import org.bouncycastle.jce.PKCS10CertificationRequest; import org.bouncycastle.openssl.jcajce.JcaPKCS10CertificationRequestBuilder; public class P10Generator { public static PKCS10CertificationRequest generateP10(String subjectDN, KeyPair pair) throws Exception { // create PKCS10 certification request object X500Name x500Name = new X500Name(subjectDN); JcaPKCS10CertificationRequestBuilder builder = new JcaPKCS10CertificationRequestBuilder(x500Name, pair.getPublic()); ContentSigner signer = new JcaContentSignerBuilder("SHA256withRSA").build(pair.getPrivate()); PKCS10CertificationRequest csr = builder.build(signer); return csr; } public static void main(String[] args) throws Exception { // generate key pair KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); KeyPair keyPair = keyPairGenerator.generateKeyPair(); // generate P10 PKCS10CertificationRequest csr = generateP10("CN=example.com,O=Example Org,C=US", keyPair); System.out.println(csr); } } ``` 在上面的示例,我们使用Bouncy Castle库的JcaPKCS10CertificationRequestBuilder类和JcaContentSignerBuilder类来创建P10证书请求。 请注意,此示例仅用于演示目的。在实际使用,您应该使用自己的主题DN(Distinguished Name)。 希望这能帮助到您。如果您有任何其他问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值