for循环中的Java If语句,返回多个int值。
我不知道如何返回四个int值。我不断收到无法访问的语句错误,可能是因为if语句 它应该返回4个值,或者字符串中的大写、小写等数字。我试着打印每个变量,它会打印出来,但不会像现在那样返回它们for循环中的Java If语句,返回多个int值。,java,Java,我不知道如何返回四个int值。我不断收到无法访问的语句错误,可能是因为if语句 它应该返回4个值,或者字符串中的大写、小写等数字。我试着打印每个变量,它会打印出来,但不会像现在那样返回它们 public static int category(String pw) { int Upper = 0; int lower =0; int num = 0; int symbol=0; for (int i=0; i< pw.length(); i++)
public static int category(String pw)
{
int Upper = 0;
int lower =0;
int num = 0;
int symbol=0;
for (int i=0; i< pw.length(); i++)
{
if (65 <= pw.charAt(i) && pw.charAt(i)<=90)
{
Upper++;
}
if(97<= pw.charAt(i) && pw.charAt(i) <=122)
{
lower++;
}
if(48<= pw.charAt(i) && pw.charAt(i) < 57)
{
num++;
}
if (31 < pw.charAt(i) && pw.charAt(i) < 48 || 57 < pw.charAt(i) && pw.charAt(i)< 64 || 90 < pw.charAt(i) && pw.charAt(i)< 97 || 122 < pw.charAt(i) && pw.charAt(i)< (127) + 1)
{
symbol++;
}
}
return Upper;
return lower;
return num;
return symbol;
}
公共静态int类(字符串pw)
{
整数上限=0;
整数下限=0;
int num=0;
int符号=0;
对于(int i=0;i if(65您不能一次返回多个int
。如果您想这样做,您需要一个数组
,这也必须在函数的头中定义。一个方法中不能有四个return语句
您在返回这些变量后做些什么?也许考虑将它们存储到一个数组或另一个数据结构中,并返回它是否符合您的需要。 < P> <强>您可以返回一个列表,如我在下面提到的:强>
public static List<Integer> category(String pw)
{
int Upper = 0;
int lower =0;
int num = 0;
int symbol=0;
List<Integer> allInts = new ArrayList<Integer>();
for (int i=0; i< pw.length(); i++)
{
if (65 <= pw.charAt(i) && pw.charAt(i)<=90)
{
Upper++;
}
if(97<= pw.charAt(i) && pw.charAt(i) <=122)
{
lower++;
}
if(48<= pw.charAt(i) && pw.charAt(i) < 57)
{
num++;
}
if (31 < pw.charAt(i) && pw.charAt(i) < 48 || 57 < pw.charAt(i) && pw.charAt(i)< 64 || 90 < pw.charAt(i) && pw.charAt(i)< 97 || 122 < pw.charAt(i) && pw.charAt(i)< (127) + 1)
{
symbol++;
}
}
allInts.add(0, Upper);
allInts.add(1,lower)
allInts.add(2,num)
allInts.add(3,symbol)
return allInts; // returning list
}
公共静态列表类别(字符串pw)
{
整数上限=0;
整数下限=0;
int num=0;
int符号=0;
List allint=new ArrayList();
对于(int i=0;i 如果(65在一个方法中最多执行一个return
语句,因为它不仅返回变量,而且终止方法。如果将多个return
语句放在后面,则只会执行第一个语句,因为在此之后,您将离开该方法。代码中的问题是无法返回m类似的多个值。当到达第一个return
时,方法return
s。它也是“无法访问代码”问题的根源;在return
语句之后出现的任何非条件代码都将无法访问
有很多解决方案,例如返回数组或数据的其他数据结构,这些方法可能既快速又简单,但如果是我,我会创建一个类来保存或处理数据。下面是一个关于这个想法的例子:
public class Category {
private int upper;
private int lower;
private int num;
private int symbol;
// Getters and Setter for your private data
// ...
// Default constructor
public Category() {...}
// Copy constructor
public Category (Category cat) {...}
// Constructor good for the method
public Category (int upper, int lower, int num, int symbol) {...}
public static Category getCategory(String pw)
{
// Everything else is the same
// ...
// Here's the important part
// This will return a new instance of the Category object
return new Category(Upper, lower, num, symbol);
}
您将在代码中这样调用它=>Category-Category=Category.getCategory(您的字符串);
如果您不需要数据持久化,并且有多个字符串进行分类,那么您可以跟踪一个Category
实例并执行Category=Category.getCategory(您的其他字符串);
您将通过在类中创建的公共getter和setter访问category中的数据,如=>category.getUpper();
,category.getLower();
,…等
在这里,你有一个紧凑的对象,有意义的一切,而不是数组或列表等;
我也遵循了你的代码,因为在你的方法中,Upper
是大写的,而其他的则不是。我可能会避免这种情况。选择一个约定来遵循并坚持它。你应该创建一个类或创建一个数组并返回。从技术上讲,你可以在一个方法中有四个返回语句,但实际上只能执行一个。(对于四种不同的条件有四个返回语句是可以的)