Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Variables - Fatal编程技术网

保存java变量

保存java变量,java,loops,variables,Java,Loops,Variables,我正在处理一项任务,由于这个问题,我无法执行某项功能 在程序开始时,我创建了一个变量 int initial = Keyboard.nextInt() (obviously user input) 然后程序进入一个循环,“initial”的值被多次更改。然而,在程序结束时,当我们退出循环时,我需要使用新的“初始”值以及用户最初输入的确切值 我很难让程序找到初始值,因为在退出循环后,每当我尝试调用“initial”变量时,我只会得到修改后的数字,而不是用户输入的第一个数字。如能帮助我解决此问题,

我正在处理一项任务,由于这个问题,我无法执行某项功能

在程序开始时,我创建了一个变量

int initial = Keyboard.nextInt() (obviously user input)
然后程序进入一个循环,“initial”的值被多次更改。然而,在程序结束时,当我们退出循环时,我需要使用新的“初始”值以及用户最初输入的确切值

我很难让程序找到初始值,因为在退出循环后,每当我尝试调用“initial”变量时,我只会得到修改后的数字,而不是用户输入的第一个数字。如能帮助我解决此问题,将不胜感激,谢谢

public class Question3 {

    public static void main(String[] args) {


                 //declare scanner 
                Scanner keyboard = new Scanner (System.in);


                //initial amount
                System.out.println("Enter the initial amount: ");
                int initial = keyboard.nextInt();

                int numItems = 0;
                double assets = 0;
                int originalPrice=initial; 
                double spending = originalPrice-assets;


                if(initial<=10)
                {
                    System.out.println("Please save money and come back later!!");
                    numItems=1;
                    spending=0.0;
                }
                else 
                    while (initial > 10 )
                {   
                    System.out.println("Do you want to make purchases (Y/N)? ");
                    char c = keyboard.next().charAt(0);
                if (c == 'Y')
                    {
                        System.out.println("Please enter the price of the item = ");
                    }

                else 
                {
                        System.out.println("Lack of desire of Mr.Toto");
                        break;
                }

                int price = keyboard.nextInt();

                if (initial-price>=10)
                    {
                        System.out.println("A purchase is accepted");
                        initial-=price;
                        assets=initial-price;
                        numItems++;
                    }

                else
                    {
                        System.out.println("Insufficient assets!!");
                        System.out.println("Please enter the price of the item = ");
                    }
                if(numItems==10)
                {
                    System.out.println("Maximal number of purchases reached");
                    break;
                }


                }

                //displaying the summary of mr totos purchases 
                System.out.println("-------------------------------------------");
                System.out.println("Here is a summary of Mr.Toto's purchases.");
                System.out.println("-------------------------------------------");
                System.out.println("Number of items     Assets      Spending");
                System.out.println("    "+numItems+"                "+assets+"   " +"       "+spending);
                }
    }
公开课问题3{
公共静态void main(字符串[]args){
//申报扫描器
扫描仪键盘=新扫描仪(System.in);
//初始金额
System.out.println(“输入初始金额:”);
int initial=keyboard.nextInt();
int numItems=0;
双资产=0;
int originalPrice=初始值;
双倍支出=原始价格资产;
如果(首字母10)
{   
System.out.println(“您是否要购买(Y/N)”;
char c=键盘.next().charAt(0);
如果(c='Y')
{
System.out.println(“请输入物品的价格=”);
}
其他的
{
System.out.println(“Toto先生缺乏欲望”);
打破
}
int price=keyboard.nextInt();
如果(初始价格>=10)
{
System.out.println(“接受购买”);
初始-=价格;
资产=初始价格;
numItems++;
}
其他的
{
System.out.println(“资产不足!!”);
System.out.println(“请输入物品的价格=”);
}
如果(numItems==10)
{
System.out.println(“达到的最大购买数量”);
打破
}
}
//显示mr totos购买的摘要
System.out.println(“-----------------------------------------”;
System.out.println(“这里是Toto先生购买的摘要”);
System.out.println(“-----------------------------------------”;
系统输出打印项数(“资产支出项目数”);
System.out.println(“+numItems+”+“+assets+”+“+”+“+spending”);
}
}

我认为您应该尝试使用ArrayList。例如:

//Inside loop
ArrayList<Integer> stuff = new ArrayList<>();
price = Keyboard.nextInt();
stuff.add(price);

//Outside loop; gets first input
stuff.get(0);
//内部循环
ArrayList stuff=新的ArrayList();
price=Keyboard.nextInt();
添加(价格);
//外环;获取第一个输入
得到(0);

出现多个错误

  • 您只处理
    int
    值,因此删除了
    双倍
  • initialBalance
    应该是不可变的,因此它被设置为
    final
  • expensing
    变量应已初始化为
    0
package com.stackoverflow.q42588622;
导入java.util.Scanner;
@抑制警告(“javadoc”)
公开课答案{
公共静态void main(字符串[]args){
//养成清理资源的习惯
try(扫描仪键盘=新扫描仪(System.in)){
//初始金额
System.out.println(“输入初始金额:”);
final int initialBalance=keyboard.nextInt();
int numItems=0;
//与平衡相同的概念
//只处理INT
//双资产=0.0;
整数平衡=初始平衡;
//支出最初为0。
//只处理INT
//双倍支出=原始价格-资产;
国际收支=0;
如果(初始余额10){
System.out.println(“您是否要购买(Y/N)”;
char c=keyboard.next()
.charAt(0);
如果(c=='Y'| | c=='Y'){
System.out.println(“请输入物品的价格=”);
}
否则{
System.out.println(“Toto先生缺乏欲望”);
打破
}
int price=keyboard.nextInt();
如果(余额-价格>=10){
System.out.println(“接受购买”);
余额-=价格;
消费+=价格;
//作为initialBalance删除是不可变的
//资产=初始价格;
numItems++;
}
否则{
System.out.println(“资产不足!!”);
System.out.println(“请输入物品的价格=”);
}
如果(numItems==10){
System.out.println(“达到的最大购买数量”);
打破
}
}
}
//显示mr totos购买的摘要
System.out.println(“-----------------------------------------”;
System.out.println(“这里是Toto先生购买的摘要”);
System.out.println(“-----------------------------------------”;
System.out.println(“i的数量