“输入一个单词或者按‘Q’退出”但是我不知道怎么做。我觉得有点困惑。
这是我第一次用Java编码,我还在学习。
public class RemSpecialChar {
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
String stringArray = "";
do {
System.out.print("Enter a word or 'Q' to quit: ");
String str = scan.nextLine();
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) > 64 && str.charAt(i) <= 122) { //returns true if both conditions returns true
//adding characters into empty string
stringArray = stringArray + str.charAt(i);
}
System.out.print("Input string without special characters: " + stringArray); //string results
}
}
while (stringArray != "q" || stringArray != "Q");
}
}
}
THIS IS THE SAMPLE OUTPUT:
Enter a word or 'Q' to quit: Black?204123,.Scoop (input)
Input string without special characters: BlackScoop (output)
Enter a word or 'Q' to quit: q (input)
(end program)
terminal output:
Enter a word or 'Q' to quit: q
Enter a word or 'Q' to quit: q
Enter a word or 'Q' to quit: q
Enter a word or 'Q' to quit: q
Enter a word or 'Q' to quit: q
Enter a word or 'Q' to quit: q
Enter a word or 'Q' to quit: q
Enter a word or 'Q' to quit:
看看这行:
while (stringArray != "q" || stringArray != "Q")
当stringArray
不是“q”
或不是“q”
时,此操作会重复。换句话说,它必须同时为“q”
和“q”
才能退出,这是不可能的。
您真正想要的是使用
while (stringArray != "q" && stringArray != "Q")
在不是
"q"
也不是"Q"
时重复。
虽然这是你问题的根源,但我仍然建议你使用你已经接受的答案。
编辑:如前所述,您也不应该用< code>==
或< code >来比较字符串!=。
java prettyprint-override">while (!"q".equals(stringArray) && !"Q".equals(stringArray))
你也可以像在其他答案中那样使用equalsIgnoreCase
。我只是想指出使用| |
而不是的逻辑中的主要缺陷
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try (Scanner scan = new Scanner(System.in)) {
while (true) {
String inputdata = scan.nextLine();
if (inputdata.length() == 1 && (inputdata.charAt(0) == 'Q' || inputdata.charAt(0) == 'q')) {
break;
}
String stringArray = "";
for (int i = 0; i < inputdata.length(); i++) {
if (inputdata.charAt(i) > 64 && inputdata.charAt(i) <= 122) { // returns true if both conditions
// returns true
// adding characters into empty string
stringArray = stringArray + inputdata.charAt(i);
}
}
System.out.print("Input string without special characters: " + stringArray);
}
}
}
}
使用while循环读取输入,如果输入为“Q”,则中断循环。
public static void main(String[] args)
{
try(Scanner sc = new Scanner(System.in))
{
while(true)
{
System.out.print("Enter a word or press 'Q' to quit: ");
String word = sc.nextLine();
if ("q".equalsIgnoreCase(word))
break;
System.out.println(word);
}
}
catch (Exception e)
{
e.printStackTrace();
}
System.out.println("Exiting... ");
}
我正在尝试编写一个程序,允许在无限循环中生成随机数。如果用户按下'c',它将脱离循环。但是循环只在我按下c时开始,它应该在之前开始,当我按下'c'时它应该停止。 另外,我想知道如何才能只使用while循环而不是do-while循环来完成这个程序。当我使用while时,我从开始,然后使用来自input的if语句中断循环,但这也不起作用。内部仍然有两个for循环。 多谢
js for循环怎么实现如下输出
我正在尝试创建一个程序,向用户询问指数,然后获取指数并执行操作(e^exponent)。如果用户输入的值不是双精度值,程序会打印“无效输入”,并继续请求指数。但是,我无法让这段代码工作,当我在调试器中键入非双精度值时,它会无限打印“输入指数:无效输入”。
如果输入了非int值,如何创建一个会中断的while循环? 例如,如果用户输入字符串、double或int以外的其他基本类型,循环将退出。
我整晚都在做这个,但是什么也没做出来。我希望我的代码对用户输入的所有数字求和,计算用户输入数字的次数。然后计算平均值。然后找到最大值和最小值,很容易就对了。是的,如果我被允许使用数组,但这是为了复习,我讨厌while循环。 这是我的密码。 以下是输出结果: 请输入一个整数:3您的数字之和为:3.0输入的值数为:1 请输入一个整数:2数字之和为:5.0输入的数值个数为:2 请输入一个整数:1数字之和
如果您能帮助我完成Java类的任务,我将不胜感激。问题提示如下: 编写一个程序来读取非负整数列表并显示最大整数、最小整数和所有整数的平均值。用户通过输入一个不用于查找最大值、最小值和平均值的负哨兵值来指示输入的结束。平均值应该是双精度类型的值,以便用小数部分计算。 我在代码中遇到的问题是,运行时,循环不会完成,除非输入的第一个值为负值,在这种情况下它返回: 输入的最大数字是:0输入的最小数字是:0