我正在得到一个没有,如果错误在最后的其他,并且似乎无法做任何事情。任何人都可以告诉我什么似乎是问题?谢谢!
public class FindMin
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
int smallest = 9999999;
String userInput;
boolean quit = false;
System.out.println("This program finds the smallest number"
+ " in a series of numbers");
System.out.println("When you want to exit, type Q");
while(quit != True)
{
System.out.print("Enter a number: ");
userInput = keyboard.next();
if(userInput.equals("Q")) userInput.equals("q");
{
if (quit = true);
}
else
{
int userNumber = Integer.parseInt(userInput);
if(UserNumber < smallest)
smallest = userNumber;
}
}
System.out.println("The smallest number is " + smallest);
System.exit(0);
}
}
答案 0 :(得分:2)
if (quit = true);
删除分号,添加==
。
结果:
if(quit == true) {
}
=
=&gt;分配
==
=&gt;比较
或者,简写:
if(quit) {
}
== true
会自动隐含。
由于那里没有代码,你可以简单地做到这一点,以避免出现空状态。
if(!quit) {
// usernumber & related stuff
}
此外:
while(quit != True)
应该是
while(quit != true)
或简写:
while(!quit) {
}
和
if(UserNumber < smallest)
应该是
if(userNumber < smallest)
最后:
int smallest = 9999999;
使用
更安全int smallest = INTEGER.MAX_VALUE;
一个小小的注意事项:您永远不会将false
值设置为quit
,因此它将成为永久循环。
最后一点,我保证:
这(不编译)
if(userInput.equals("Q")) userInput.equals("q");
可以改写为
if(userInput.equalsIgnoreCase("Q"));
答案 1 :(得分:1)
试试这个:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int smallest = 9999999;
String userInput;
System.out.println("This program finds the smallest number"
+ " in a series of numbers");
System.out.println("When you want to exit, type Q");
while (true) {
System.out.print("Enter a number: ");
userInput = keyboard.next();
if (userInput.equals("Q") || userInput.equals("q")) {
System.exit(0);
}
smallest = Math.min(smallest, Integer.parseInt(userInput));
System.out.println("The smallest number is " + smallest);
}
}
}
您的解决方案有许多语法错误,如其他用户所述。此外,您错过了检查最小数字的例程。