循环中的定义的变量都是局部变量不能在外面使用。但是很多时候我们都需要在循环后继续使用。
一种是定义一个零时变量,进行值的交换。下面这个例子中的temp就是互相传值的一个中间变量
//用数组,对五个数进行排序,并且输出。
import java.util.Scanner;
public class PaiXu {
public static void main(String[]args){
System.out.println("请输入五个数");
Scanner s = new Scanner(System.in);
int [] sl = new int[5];
int temp = 0;
int i = 0;
for(i= 0;i<sl.length;i++){
sl[i] = s.nextInt();
}
s.close();
for(i=0;i<4;i++){//每次找到最小值
for(int k= 0;k<sl.length-1-i;k++)
if(sl[k]<sl[k+1]){
temp=sl[k+1];
sl[k+1]=sl[k];
sl[k]=temp;
}
}
for(int j =0;j<sl.length;j++)System.out.println(sl[j]);
}
}
另一种用boolean然后再用if进行判断一个简单的例子说明:请找出0~100的所有素数。
public class AllSuShu {
public static void main(String[]args){
int i = 0 ;
boolean boo = true;
System.out.println("1--100的素数有:");
for (i=2;i<=100;i++){
boo = true;//初始化为真
for(int k=2;k<i;k++){
if(i%k ==0){
boo = false;
}
}
if(boo) System.out.println(i);
}
}
}
通过这样的方法我们就能让内层循环的值传出来。不用每次循环。
下面这个在特殊的循环while try catch 下,里面的变量需要每次都重新定义
而一般循环里更改了变量的值,导致外循环无法循环下去。所以我们最好是在循环外定义,在循环里面赋值。需要注意的是,循环里的每次循环都在上面进行重新初始化。
//传出boo1 和quKuan
int quKuan =o; boolean boo1=false;
for(i=1;i<4;i++){//三次取款输入
while(true){//输入非法字符提示错误
try{
xTong.XTQuKuan(); //引用的登录界面
Scanner s1=new Scanner(System.in);//在循环中的try必须重新new一个,不然quKuan无法更新
int quKuan1= s1.nextInt();
boo1 = true;//输入无非法字符
quKuan = quKuan1;//将输入格式正确的输出
}
catch(InputMismatchException e){
xTong.XTQuKuanWrongZF();//提示非法字符
boo1 = false;//输入有非法字符
break;
}
}
if(boo1==false) continue;//有非法字符重新进入输入界面
}
同样我们可以使用do while 循环,在do里面对变量进行初始化。所以尽量做到在外面定义,再循环一定初始化。

在循环中,局部变量通常无法在外部使用。文章介绍了两种方法来传递和管理循环内的值:一是通过临时变量进行值交换,例如在冒泡排序中;二是利用布尔变量结合if判断,如查找素数。强调在特殊循环结构中,如try-catch,需注意变量的初始化位置,确保每次循环都能正确更新其值。
6万+

被折叠的 条评论
为什么被折叠?



