在java中解决这段代码时面临循环中的问题

facing problem in loop while solving this code in java

本文关键字:问题 循环 解决 java 段代码 代码      更新时间:2023-10-16

我在java中使用while循环时遇到问题。我做了很多功课。但不能解决它。专门使用和运算符、递减运算符。

事实上,我想用java做同样的代码。但是在java中,我不能在这些条件下使用while循环。

int dataSet;
scanf ("%d", &dataSet);
while ( dataSet-- ) {
char a;
int result = 0;
while ( scanf ("%c", &a) && a != 'X' ) {
result += function (a);
}
printf ("%dn", result);
}
return 0;
Java是强类型语言。该条件不会自动转换为布尔值,例如javascript。

您可以使用while ( dataSet-- > 0 )

您应该只在条件中使用布尔值。

我正在编辑我的答案。看起来您指向代码的内部while循环

新建编辑:您无法在Java中实现纯粹的scanf功能。读取可以通过Run Arguments,也可以通过File。

因此,您可以将所需的字符放入某个文件中,然后逐个读取这些字符。我会和你分享一个类似的剪报。希望能有所帮助!

Scanner sc = new Scanner(new File("input.txt")); // to read file
int dataSet = 10;
while(dataSet-- >0) {
String a=""; // using String here for storing letters
int result = 0;
while(!a.equals("X")) {
a = sc.next();
result += function(a);
}
System.out.println(result);
}

旧编辑:如果条件正在困扰您

试试这个"=="操作员

Java不将0理解为false

while ( dataSet-- != 0 )

这是代码。。。

converter1 c1=new converter1();
Scanner s1 = new Scanner(System.in);
int data;
data=s1.nextInt();
while(data--  != 0){
char a=0;
int sum=0;
do {
a = s1.next().charAt(0);
sum += c1.function(a);
} while( a != 'X');
System.out.println(sum);

但对于输出和输入,需要字符之间的空格像这样。。。。(A B C X(。。。

没有这样的空间。。。。(ABCX(它没有给出输出。

为了避免输入中出现空格,您可以读取整个输入,然后进一步解析以获取单个输入

Scanner sc = new Scanner(System.in);
String inputCollective = sc.next();
char[] inputArray = inputCollective.toCharArray();
for (char ch: inputArray) {
int number = Integer.parseInt(ch+"");
System.out.println(number);
}

PS:代码看起来是修复类型。。但如果它有帮助,那就太好了:(