我做了一个“猜测随机数”的小游戏,它接受用户的输入并检查它是否等于使用 for循环生成的数字。如果是,应用程序将打印一条祝贺语句,然后跳出循环。如果没有(并且失败了五次),应用程序应该打印出游戏结束语句。
由于某种原因,我的游戏结束语句不会打印,尽管所有其他 println() 语句都会打印。为什么它不起作用?
下面是我的代码:
import java.util.Random;
import java.util.Scanner;
public class randgame_draft {
public static void main(String[] args) {
System.out.println("Welcome to RandGame. What's your name?");
Scanner scanner = new Scanner(System.in);
String answer = scanner.next();
System.out.println("Hello, " + answer + ". Shall we begin?");
Scanner ask = new Scanner(System.in);
String response = ask.next();
if (response.equals("yes")) {
System.out.println("Alright!");
} else {
System.out.println("Oh, okay. Later!");
return;
}
Random random = new Random();
int rand = random.nextInt(20) + 1;
for (int …Run Code Online (Sandbox Code Playgroud) 我是编程新手,非常感谢你的帮助.一点点见解都会受到高度赞赏.我有以下代码的问题.该程序模拟计算器,但目前我主要关注if和else if语句.问题是,无论用户选择什么,程序将始终在代码中添加两个数字,即'number1'和'number2'
import java.util.*;
public class Input
{
private Scanner input;
public Input()
{
input = new Scanner(System.in);
}
public void calculation()
{
double number1, number2, answer;
String A, B, C, D, E;
String option;
A = "A"; B = "B"; C = "C"; D = "D"; E = "E"; //initialising the strings
System.out.println("add - option A \t (if your option is A, insert 'A')");
System.out.println("multiply - option B");
System.out.println("subtract - option C");
System.out.println("divide - option D");
System.out.println("power - …Run Code Online (Sandbox Code Playgroud) 如果我们执行System.out.println("Xys"); 和System.err.println("Fdfd");
它们都应该完全相同而且错误是同一类的对象,除非事实并非如此.
为什么out.println()以黑色打印而err.println()以红色打印.
我正在尝试打印出我为ArrayList输入的内容,但是[player@42a57993, player@75b84c92, player@6bc7c054]当我清楚地输入合法名称时,我一直得到奇怪的结果.所以看看我的代码,看看问题可能是什么:
if (o == 5) {
double RD, t, old, x;
String tournament, player;
int a, number_of_players, place;
ArrayList<player> players = new ArrayList<player>();
System.out.println("1:Add a tournament \t2:View Existing");
a = keyIn.nextInt();
if (a == 1) {
System.out.println("\nEnter tournament name");
tournament = keyIn.next();
System.out.println("\nEnter number of players");
number_of_players = keyIn.nextInt();
System.out.println("Enter players");
for (int i = 0; i < number_of_players; i++) {
String name = keyIn.next();
player plr = new player();
plr.setName(name);
players.add(plr);
}
System.out.println("Enter places for"); …Run Code Online (Sandbox Code Playgroud) 我在处理我的一个小项目时发现了一些奇怪的事情:我用一些代码来编写代码System.out.println();来追踪一个bug.奇怪的是,当我从IDE运行错误程序时,Exception堆栈跟踪的行和一些打印语句的打印输出在每次运行程序时以不同的顺序出现.常识将规定同一程序每次都以相同的方式运行,包括例外,因此所有执行的输出也必须相同.然而,这种情况并非如此.线条的内容保持不变,并且堆栈跟踪线和打印输出线的顺序保持一致,但每次都会混合不同.所以在一次运行中,控制台输出是
populatePinArrays: An input pin added to gate!
populatePinArrays: An input pin added to gate!
populatePinArrays: An output pin added to gate!
Exception in thread "main" java.lang.NullPointerException
at Gates.Pin.isReadyToEvaluate(Pin.java:28)
at Gates.Pin.evaluate(Pin.java:19)
at Gates.TheCircuit.evaluateTheCircuit(TheCircuit.java:42)
at main.Main.main(Main.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
CircEval: all set to dirty
CircEval: all input pins set to clean
Run Code Online (Sandbox Code Playgroud)
而下一次它可以
Exception in thread "main" populatePinArrays: An input pin added to gate!
populatePinArrays: An input pin added to gate!
java.lang.NullPointerException …Run Code Online (Sandbox Code Playgroud) char char1 = 'a';
System.out.println(char1); //prints char 1
System.out.println(char1+1); //prints char 1
System.out.println(char1++); //prints char 1
System.out.println(char1+=1); //prints incremented char1
char1 += 1;
System.out.println(char1); //prints incremented char1
Run Code Online (Sandbox Code Playgroud)
在上面,为什么不(char1 + 1)或(char ++)打印增量字符,而另外两个呢?
我是java的新手,并且想知道为什么有人会使用System.out.println()来改变行而不是仅仅将"\n"放在括号内.这两者之间有什么不同吗?