慕的地6264312
2021-10-27 16:36:05
我正在學(xué)習(xí)以 Java 為語言的介紹性編程課程。我們正在處理的任務(wù)正在困擾著我。我有一個(gè)while循環(huán)要求輸入數(shù)值,當(dāng)輸入字符串值時(shí)終止,即while (sc.hasNextDouble()){...}接下來是另一個(gè)掃描儀輸入,它使用if (sc.hasNextLine())問題是我使用一個(gè)字符串來終止頂部的while循環(huán),然后掃描儀立即使用它。我嘗試對(duì)帶有顯式中斷的頂部循環(huán)使用 if/else 語句;聲明,但這不起作用。無論我做什么,它仍然在傳遞。我應(yīng)該如何處理這個(gè)問題?任何指針表示贊賞。編輯:根據(jù)要求,這里是一些實(shí)際的代碼。請(qǐng)記住,這是針對(duì)任意類分配的,因此可能沒有多大意義。 //Request user input System.out.print("Please enter multiple double values. Enter q or any non double value to quit."); double doubleValue = 0.00; //declare doubleValue variable (for each entered double value) double sum = 0.00; //declare starting sum value variable at 0.00 double doubleAverage = 0.00; //declare average of doubles variable //declare largest double value variable as MIN_VALUE to ensure any entered value is larger double largestDouble = Double.MIN_VALUE; //declare smallest double value variable as MAX_VALUE to ensure any entered value is smaller double smallestDouble = Double.MAX_VALUE; //declare smallest double value variable int count = 0; //set starting count while (sc.hasNextDouble()) { doubleValue = sc.nextDouble(); //System.out.print("Please enter another double value. Enter -1 to stop entering values."); sum = sum + doubleValue; count++; } /* * This section prompts the user for their first name and printd it in reverse. */ System.out.print("Please enter your first name:"); String fName = ""; //declare fName variable before requesting input if (sc.hasNext()) { fName = sc.next();…在此之后,字符串值用于終止我最后用于 if 語句的 while 循環(huán)。
3 回答

三國紛爭(zhēng)
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
我的講師提供的另一個(gè)有效選項(xiàng)是使用虛擬變量來使用 Scanner 輸入,例如:
String fName = sc.next(); // Consume the Q or q here
.

慕娘9325324
TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
不從sc
掃描儀傳遞數(shù)據(jù)的一種方法是創(chuàng)建一個(gè)新的掃描儀對(duì)象。讓我們稱之為一個(gè)scan
。這樣,當(dāng)您引用scan
它時(shí),將不知道sc
之前輸入的掃描儀。
在您的if
陳述中,您會(huì)提到scan
掃描儀而不是sc
掃描儀。
數(shù)據(jù)從while
循環(huán)傳遞到您的if
語句的原因是因?yàn)樗鼈兌家昧送粋€(gè)對(duì)象,并且在您調(diào)用sc.hasNext()
它時(shí)讀取了您輸入到控制臺(tái)的最后一個(gè)內(nèi)容。
添加回答
舉報(bào)
0/150
提交
取消