Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在循环中存储用户的上一个值?_Java_Swing_Variables_Do While - Fatal编程技术网

Java 如何在循环中存储用户的上一个值?

Java 如何在循环中存储用户的上一个值?,java,swing,variables,do-while,Java,Swing,Variables,Do While,我想从用户输入中找到最大的数字。如何在do while循环中存储用户输入的先前值 谢谢大家! 最简单的修复方法可能是: publicstaticvoiduserinput(){ 做{ String str1=JOptionPane.showInputDialog(“输入一个正整数,输入0退出”); //s1=Integer.parseInt(str1);//不要直接保存到此变量 int newValue=Integer.parseInt(str1); 如果(新值>s1){ s1=新值; } 如果

我想从用户输入中找到最大的数字。如何在do while循环中存储用户输入的先前值


谢谢大家!

最简单的修复方法可能是:

publicstaticvoiduserinput(){
做{
String str1=JOptionPane.showInputDialog(“输入一个正整数,输入0退出”);
//s1=Integer.parseInt(str1);//不要直接保存到此变量
int newValue=Integer.parseInt(str1);
如果(新值>s1){
s1=新值;
}
如果(newValue==0)
打破
}而(s1>0);
}

一个简短的提示:
while(s1>0)
检查在这里并没有真正起作用。由于上面有break语句,因此可以将其简化为
,而(true)

在保存数字时,必须小心不要丢失它们。想象一下,你用你的幸运数字买了一张彩票。本周晚些时候,当抽奖发生时,你的幸运数字就是赢家!你去找你的票,但是…那是什么?你不记得你把它放在哪里了?几亿是多少,对吗

你看到哪里出了问题吗?它不记得数字。就是记住你把数字放在哪里了!你不想失去他们。因此,您需要做的第一件事是将您的号码保存到一个文件中,如下所示:

import javax.swing.JOptionPane;

public class Hello {

    public static int s1;

    public static void main(String [] args){

            userInput();
    }

    public static void userInput() {

        do {
            String str1 = JOptionPane.showInputDialog("Enter a positive integer. Enter 0 to quit. ");

            s1 = Integer.parseInt(str1);

            if (s1 == 0)
                break;

        } while (s1 > 0);

    }
}
现在你有了一个文件来保存你的号码,但是如果你的硬盘出现故障怎么办?还是你的电脑被偷了?或者你在玩非法外国在线彩票时下载了病毒?你会想支持它的。这样做的一个常见服务就是S3

在包含S3 Java库并初始化S3客户机之后,添加以下代码

String filename = "your_filename.txt";
FileWriter file = null;
BufferedWriter writer = null;

try
{
    file = new FileWriter(filename);
    writer = new BufferedWriter(file);

    do {
        String str1 = JOptionPane.showInputDialog("Enter a positive integer. Enter 0 to quit. ");

        s1 = Integer.parseInt(str1);
        writer.write(Integer.toString(str1));
        writer.newLine();

        if (s1 == 0)
            break;

    } while (s1 > 0);

    writer.close();
}
catch (IOException e)
{
    // Common practice is to ignore exceptions since they probably won't happen
}

恭喜你!现在,只需支付象征性的费用(不要担心您的彩票中奖金额会超过保险金额),您就再也不会丢失您的号码了。

s1的值没有分配。我们如何使用(newValue>s1)作为条件?您可以给它一个超出预期范围的初始值——您注意到您只需要正整数,所以负数可以工作。在所有值都可能的情况下,您可能会直接使用
Integer
类,并将初始值设置为null。如果这是家庭作业类型的赋值,那么最好为变量(s1,str1)指定有意义的名称。s1和str1不明确,可能与较大程序中的其他值混淆。
String bucketName = "important-numbers";
File localNumbers = new File(filename);
s3client.putObject(bucketName, filename, localNumbers);