第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將一個變量添加到另一個已經(jīng)設(shè)置的變量

如何將一個變量添加到另一個已經(jīng)設(shè)置的變量

侃侃爾雅 2023-03-23 13:37:39
我的作業(yè)是創(chuàng)建一個程序,它接受一個數(shù)字列表并打印出能被 4 整除的最大數(shù)字。列表看起來像這樣:12  16  87  58  25  73  86  36  79  40  12  89  32  輸入應(yīng)為:40,因為它是可被 4 整除的最大數(shù)字。這是我的代碼:import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        int saved = 0;        int saved2 = 0;        for (int i = scanner.nextInt(); i % 4 == 0; i = scanner.nextInt()) {            for (boolean bull = true; bull == true; bull ^= true) {                if (i > saved) {                    saved -= saved2;                    saved += i;                    saved2 += i;                }            }            System.out.println(saved);        }    }}我的代碼的輸入是12  16  我真的不明白為什么要這樣做,但在我看來我添加的變量是錯誤的。添加變量的作業(yè)頁并沒有具體說明如何相互添加變量。有沒有人有改進(jìn)代碼的提示,或者找到修復(fù)我的代碼的方法?謝謝。
查看完整描述

3 回答

?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊

歡迎來到爪哇。

首先你說你得到了輸入,但那是輸出。輸入是您輸入的內(nèi)容,輸出是您打印的內(nèi)容。

然后你的 for 循環(huán)中有一個錯誤。你在一個地方發(fā)生了太多事情。根據(jù)實現(xiàn)的邏輯,只要您輸入的值不能被 4 整除,您的程序就會退出第一級 for 循環(huán)。


如果您想了解更多信息,請繼續(xù)閱讀 for loops https://www.learnjavaonline.org/en/Loops。

我建議改為從循環(huán)開始while。邏輯應(yīng)該是這樣的:

1. 創(chuàng)建變量來保存正確答案saved

2.創(chuàng)建另一個來保存從控制臺讀取的值i

while3.有條件開始循環(huán)i = scanner.nextInt()

3.1 檢查剛剛輸入的值是否i能被4整除

3.2 如果是,則比較是否比之前保存的大(初始saved值為0)

3.3 如果比較大,則將讀取i到的值賦值給saved

4. 在循環(huán)結(jié)束時,saved變量中將有可被 4 整除的最大數(shù)字。打印出來。


查看完整回答
反對 回復(fù) 2023-03-23
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗 獲得超4個贊

根據(jù)
我如何提問和回答家庭作業(yè)問題,我會提供一些幫助。

for (int i = scanner.nextInt(); i % 4 == 0;i = scanner.nextInt())

只要所有輸入都可以被 4 整除,這只會讀取,這就是它以 16 結(jié)尾的原因,因為 87 不能被 4 整除。

for (boolean bull = true; bull == true ;bull ^= true)

這需要你的解釋,但我很確定它無條件地只執(zhí)行一次內(nèi)部循環(huán)體。true(不是 100% 確定,因為和的表示false在您的機(jī)器中可能很奇怪。如果 0 是 的表示true,即真的很奇怪,那么它是一個無限循環(huán),與您描述的輸出不匹配......)

System.out.println(saved);

這對每個輸入只執(zhí)行一次,除了最后一個,它不是 4 的倍數(shù)。

的值saved與輸入相同,只要它是遞增的。

這些提示解釋了意外的輸出。
如果您檢查問題的詳細(xì)信息,您應(yīng)該能夠改進(jìn)您的編碼嘗試。


查看完整回答
反對 回復(fù) 2023-03-23
?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗 獲得超4個贊

這就是我在您的代碼中快速修復(fù)的方式。請注意,沒有關(guān)于可能的最小值以及如何停止輸入的陳述。因此,解決方案非常簡單,它只讀取輸入,直到那里出現(xiàn)整數(shù)。

這篇文章可能對處理來自Scanner.

我希望代碼中的注釋會有所幫助。如果有任何問題,請?zhí)砑釉u論。祝你好運(yùn)!

import java.util.Scanner;


public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);


        int currentMax = Integer.MIN_VALUE; // you may set negative or 0 if you know that all the input is positive

//      int saved2 = 0; // no need for this variable


        while (scanner.hasNextInt()) { // you can make a better input handling, especially if you know when it should end the input. Now it will end on any non-integer input line

            int i = scanner.nextInt();


            //      for (int i = scanner.nextInt(); i % 4 == 0; i = scanner.nextInt()) {

//          for (boolean bull = true; bull == true; bull ^= true) {

                if (((i % 4) == 0) && (i > currentMax)) {

                    currentMax = i;

//                  saved -= saved2;

//                  saved += i;

//                  saved2 += i;

//              }

            }

        }


        System.out.println(currentMax); // moved out of "for" or "while" cycles. Print the value after the input has ended.

    }

}


查看完整回答
反對 回復(fù) 2023-03-23
  • 3 回答
  • 0 關(guān)注
  • 192 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號