java中我一直掌握不好的两个问题,数组和for循环,请高手赐教 小女子学习java遇到难题了,基础知识学到手,可是应用起来太不灵活。尤其是数组,拿到问题往往想不起来用数组去解决。求各位前辈指点一二。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把介绍和使用数组的api好好看看,然后写几个例子多练习。 每天多写几个代码就可以了简单操作数组例子 今天刚给别人写得,转化IPpackage com.liha;public class lihanIpTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub lihanIpTest ip=new lihanIpTest(); String ipAddress="193.168.222.333"; String delims = "[.|]"; String[] ipStr=ipAddress.split(delims); for(int i=0;i<ipStr.length;i++) { ipStr[3]="*"; ipStr[2]="*"; } for(int i=0;i<ipStr.length;i++) { System.out.print(ipStr[i]); System.out.print("."); } }} 一。for 很简单,以下我上课时做的课件的内容,也许对你有帮助。for ( initialization_expression; loop_condition; increment_expression ) { // statements } for循环语句的控制出现在关键字for之后的圆括号中,它包括用分号隔开的三个部分。 第一部分是initialization_expression(初始化表达式),在循环开始执行之前,它对用于保存循环迭代次数的计数器进行初始化,如,int i = 1(可以用整型、浮点型变量)。 第二部分是只要指定的循环表达式loop_condition(循环条件表达式)的运算结果是true时,循环便可以继续执行。在每一次循环迭代的开始处均检查这个表达式,当它为false时,程序将转至该循环结构之后的语句处继续执行。 第三部分是increment_expression(增量表达式),通常用于增加循环计数器的值。在每一次循环迭代的末尾执行此项工作。该部分可能是i++,它将循环计数器加1,当然也可以增加的步长不是1,如果增加的步长为2,则可以与成:i+=2;或者也可以是更复杂的步长值,比如像i=2*i+1一样。 for循环的拓展 (1),for循环语句的第一部分initialization_expression (初始化表达式),可以声明和初始化多个变量,并且可以在for语句中的各个部分来使用这些变量。例: public class multiply {public static void main(String args[]) {long result = 0;int limit = 5;for (int i = 1, j = limit ; i <= limit; i++) {result = i * j;j--;System.out.println(i + "*" + j + "=" + result );}} }(2),for循环语句的第二部loop_condition(循环条件表达式),这里可以是多个逻辑表达式的组合,只要最后的运算结果是true时,循环便可以继续执行,false时,循环将停止。例: public class multiply {public static void main(String args[]) {long result = 0;int limit = 5;for (int i = 1, j = limit; i <= limit && j > 2; i++) {result = i * j;j--;System.out.println(i + "*" + j + "=" + result );}} }(3),第三部分是increment_expression(增量表达式),这里并不只是增量表达式,可以有任何表达式,并且可以与循环的控制无关。例: public class multiply {public static void main(String args[]) {long result = 0;int limit = 5;for (int i = 1, j = limit; i <= limit; i++, j--) {result = i * j;System.out.println(i + "*" + j + "=" + result );}} }(4), 用浮点数值计数。例:public class Area {public static void main(String args[]) {for (double radius = 1.0; radius <= 2.0; radius = radius + 0.2) {System.out.println("radius=" + radius + " Area=" + Math.PI * radius * radius);}}} (5), for语句中的三个表达式可以去掉任意思的个数,但格式不能变。for (int i = 1; i <= limit; i++) int i =1; for (; i <= limit; i++) for ( ; ; ) // 当条件表达式部分不写时,将是一个死循环。int i =1; for ( ; i < 10; ) 嵌套循环 我们可以将任何一种循环嵌入到另一种循环中,并且可以进行任意多重的嵌套。 这回将刚开始提到的阶乘的计算重新进行程序设计。public class Factorial {public static void main(String args[]) {long factorial = 1;long limit = 20;for (int i = 1; i <= limit; i++) {factorial = 1; // Initialize factorialfor (int factor = 2; factor <= i; factor++) { factorial = factorial * factor;}System.out.println(i + " factorial is " + factorial);}}}continue语句 当我们在程序设计中,当满足某些条件时,循环体内的某些程序块不执行而进入下一轮循环时,就可以用continue与if语句加以控制。public class Factorial {public static void main(String args[]) {long factorial = 1;long limit = 20;for (int i = 1; i <= limit; i++) {if(i % 3 == 0) { System.out.println("Does not calculate "+ i +" factorials." ); continue;}factorial = 1; // Initialize factorialfor (int factor = 2; factor <= i; factor++) { factorial = factorial * factor;}System.out.println(i + " factorial is " + factorial);}}}break语句当我们在程序设计中,当满足某些条件时,退出循环时,就可以用break与if语句加以控制。public class Factorial {public static void main(String args[]) {long factorial = 1;long limit = 20;for (int i = 1; i <= limit; i++) {if(factorial > 6227020800l) {System.out.println("Exit For.");break;}factorial = 1; // Initialize factorialfor (int factor = 2; factor <= i; factor++) { factorial = factorial * factor;}System.out.println(i + " factorial is " + factorial);}}}二。对于数组,那很简单。当然你要处理同一类型的数据时,而且知道数据的个数时,你可以用数据 要说的前面的都说了.just do it多写代码,不要只是在脑子里想.有很多问题用脑子想很简单,实际做了才发现有很多细节上的问题.数组不是很难,多写一些代码,锻炼下逻辑思维的能力,慢慢的就会好起来了. 我认为楼主的问题不在于对Java语言的陌生,而是在于对数据结构基础的陌生。受到了面向对象的毒害。可以多研究数据结构。 如何实现 触发某个事件后弹出新框架窗口,但原有的框架窗口就变成不活动的,必须关闭弹出的窗口原窗口才可用? 正则问题 求助:读取EXCEL的sheet出错 调用Set中克隆接口出错小程序,各位帮忙解释下. file问题 数据库封装类千奇百怪,求一个用的较多的封装方法,谢谢 安装j2se5.0时安装界面为乱码 求一个正则表达式的修改 jdk问题 为何会有"not found in class java.awt.Button"错误??? 写了一个线程池。大家看下哪里有不合理的地方,高手给过滤下,看看是否有不合理的地方,如果可以把其在精悍下。 请帮个忙。初学者。所以可能问题比较幼稚。请见晾
package com.liha;public class lihanIpTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
lihanIpTest ip=new lihanIpTest();
String ipAddress="193.168.222.333";
String delims = "[.|]";
String[] ipStr=ipAddress.split(delims);
for(int i=0;i<ipStr.length;i++)
{
ipStr[3]="*";
ipStr[2]="*";
}
for(int i=0;i<ipStr.length;i++)
{
System.out.print(ipStr[i]);
System.out.print(".");
}
}}
for ( initialization_expression; loop_condition; increment_expression ) {
// statements
} for循环语句的控制出现在关键字for之后的圆括号中,它包括用分号隔开的三个部分。
第一部分是initialization_expression(初始化表达式),在循环开始执行之前,它对用于保存循环迭代次数的计数器进行初始化,如,int i = 1(可以用整型、浮点型变量)。
第二部分是只要指定的循环表达式loop_condition(循环条件表达式)的运算结果是true时,循环便可以继续执行。在每一次循环迭代的开始处均检查这个表达式,当它为false时,程序将转至该循环结构之后的语句处继续执行。
第三部分是increment_expression(增量表达式),通常用于增加循环计数器的值。在每一次循环迭代的末尾执行此项工作。该部分可能是i++,它将循环计数器加1,当然也可以增加的步长不是1,如果增加的步长为2,则可以与成:
i+=2;或者也可以是更复杂的步长值,比如像i=2*i+1一样。
for循环的拓展
(1),for循环语句的第一部分initialization_expression (初始化表达式),可以声明和初始化多个变量,并且可以在for语句中的各个部分来使用这些变量。
例:
public class multiply {
public static void main(String args[]) {
long result = 0;
int limit = 5;
for (int i = 1, j = limit ; i <= limit; i++) {
result = i * j;
j--;
System.out.println(i + "*" + j + "=" + result );
}
}
}(2),for循环语句的第二部loop_condition(循环条件表达式),这里可以是多个逻辑表达式的组合,只要最后的运算结果是true时,循环便可以继续执行,false时,循环将停止。
例:
public class multiply {
public static void main(String args[]) {
long result = 0;
int limit = 5;
for (int i = 1, j = limit; i <= limit && j > 2; i++) {
result = i * j;
j--;
System.out.println(i + "*" + j + "=" + result );
}
}
}(3),第三部分是increment_expression(增量表达式),这里并不只是增量表达式,可以有任何表达式,并且可以与循环的控制无关。
例:
public class multiply {
public static void main(String args[]) {
long result = 0;
int limit = 5;
for (int i = 1, j = limit; i <= limit; i++, j--) {
result = i * j;
System.out.println(i + "*" + j + "=" + result );
}
}
}(4), 用浮点数值计数。
例:
public class Area {
public static void main(String args[]) {
for (double radius = 1.0; radius <= 2.0; radius = radius + 0.2) {
System.out.println("radius=" + radius + " Area=" + Math.PI * radius * radius);
}
}
} (5), for语句中的三个表达式可以去掉任意思的个数,但格式不能变。
for (int i = 1; i <= limit; i++)
int i =1;
for (; i <= limit; i++)
for ( ; ; ) // 当条件表达式部分不写时,将是一个死循环。
int i =1;
for ( ; i < 10; ) 嵌套循环
我们可以将任何一种循环嵌入到另一种循环中,并且可以进行任意多重的嵌套。
这回将刚开始提到的阶乘的计算重新进行程序设计。public class Factorial {
public static void main(String args[]) {
long factorial = 1;
long limit = 20;
for (int i = 1; i <= limit; i++) {
factorial = 1; // Initialize factorial
for (int factor = 2; factor <= i; factor++) {
factorial = factorial * factor;
}
System.out.println(i + " factorial is " + factorial);
}
}
}
continue语句
当我们在程序设计中,当满足某些条件时,循环体内的某些程序块不执行而进入下一轮循环时,就可以用continue与if语句加以控制。public class Factorial {
public static void main(String args[]) {
long factorial = 1;
long limit = 20;
for (int i = 1; i <= limit; i++) {
if(i % 3 == 0) {
System.out.println("Does not calculate "+ i +" factorials." );
continue;
}
factorial = 1; // Initialize factorial
for (int factor = 2; factor <= i; factor++) {
factorial = factorial * factor;
}
System.out.println(i + " factorial is " + factorial);
}
}
}break语句当我们在程序设计中,当满足某些条件时,退出循环时,就可以用break与if语句加以控制。
public class Factorial {
public static void main(String args[]) {
long factorial = 1;
long limit = 20;
for (int i = 1; i <= limit; i++) {
if(factorial > 6227020800l) {
System.out.println("Exit For.");
break;
}
factorial = 1; // Initialize factorial
for (int factor = 2; factor <= i; factor++) {
factorial = factorial * factor;
}
System.out.println(i + " factorial is " + factorial);
}
}
}二。对于数组,那很简单。当然你要处理同一类型的数据时,而且知道数据的个数时,你可以用数据
多写代码,不要只是在脑子里想.
有很多问题用脑子想很简单,实际做了才发现有很多细节上的问题.
数组不是很难,多写一些代码,锻炼下逻辑思维的能力,慢慢的就会好起来了.