Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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_Android - Fatal编程技术网

Java 被套圈绊住了,不确定出了什么问题

Java 被套圈绊住了,不确定出了什么问题,java,android,Java,Android,我只是android和java的初学者。我正试图建立一个应用程序,将告诉你,如果你赢或输的赌博鞅的基础 我的想法是,你可以设定你的钱,目标和最低赌注 例如,如果我将我的当前资金设置为1000,我的目标是获得1100,最小赌注为100,则应用程序将自动运行该功能10次,并计算赢率 现在我被绊倒了,android studio没有显示任何错误,然而,每当我尝试模拟应用程序时,它都会显示“不幸的是,应用程序已停止”对我来说一切似乎都很好,我不知道如何找到错误。。。请引导我。万分感谢 package c

我只是android和java的初学者。我正试图建立一个应用程序,将告诉你,如果你赢或输的赌博鞅的基础

我的想法是,你可以设定你的钱,目标和最低赌注

例如,如果我将我的当前资金设置为1000,我的目标是获得1100,最小赌注为100,则应用程序将自动运行该功能10次,并计算赢率

现在我被绊倒了,android studio没有显示任何错误,然而,每当我尝试模拟应用程序时,它都会显示“不幸的是,应用程序已停止”对我来说一切似乎都很好,我不知道如何找到错误。。。请引导我。万分感谢

package com.example.android.gambling;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.text.Editable;
    import android.view.View;
    import android.widget.EditText;
    import android.widget.TextView;

    public class MainActivity extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

        }

        EditText cMoney = (EditText) findViewById(R.id.money);
        double currentMoney = Double.parseDouble(cMoney.getText().toString());

        EditText target = (EditText) findViewById(R.id.target);
        double theTarget = Double.parseDouble(target.getText().toString());

        EditText bet = (EditText) findViewById(R.id.bet);
        double minBet = Double.parseDouble(bet.getText().toString());

        boolean findRate = calRate(currentMoney, theTarget, minBet);


        public void seeRate(View view) {


            TextView textview = (TextView)findViewById(R.id.textView);
            textview.setText("You " + winPercentage());



        }

        public boolean calRate(double currentMoney, double theTarget, double minBet) {

            while (currentMoney>minBet){
                boolean win = winRate();
                if (win){
                    currentMoney += minBet;
                    minBet = minBet;
                }
                else {
                    currentMoney -= minBet;
                    minBet *= 2;
                }
                if (currentMoney>=theTarget){
                    return true;
                }

            }

            return false;
        }

        private boolean winRate() {
            double d = Math.random();
            if (d < 0.5)
            return true;
            else
                return false;

        }

        public int winPercentage (){
            int numberWin = 0;
            for (int i=0; i<=10; i++){
                boolean win = calRate(currentMoney, theTarget, minBet);
                if (win){
                    numberWin = numberWin + 1;
                }

            }
            return numberWin/10*100;
        }
    }
package com.example.android.gambing;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.text.Editable;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.TextView;
公共类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
EditText cMoney=(EditText)findViewById(R.id.money);
double currentMoney=double.parseDouble(cMoney.getText().toString());
EditText目标=(EditText)findViewById(R.id.target);
double-theTarget=double.parseDouble(target.getText().toString());
EditText bet=(EditText)findViewById(R.id.bet);
double minBet=double.parseDouble(bet.getText().toString());
布尔findRate=calRate(当前货币、目标、最小赌注);
公共无效率(视图){
TextView TextView=(TextView)findViewById(R.id.TextView);
setText(“你”+winPercentage());
}
公共布尔计算率(双倍当前货币、双倍目标、双倍最小赌注){
while(currentMoney>minBet){
布尔值win=winRate();
如果(赢){
currentMoney+=minBet;
minBet=minBet;
}
否则{
当前货币-=minBet;
minBet*=2;
}
如果(当前货币>=目标){
返回true;
}
}
返回false;
}
私有布尔winRate(){
double d=Math.random();
如果(d<0.5)
返回true;
其他的
返回false;
}
公共整数百分比(){
int numberWin=0;
对于(int i=0;iminBet){
布尔值win=winRate();
如果(赢){
currentMoney+=minBet;
minBet=minBet;
}
否则{
当前货币-=minBet;
minBet*=2;
}
如果(当前货币>=目标){
返回true;
}
}
返回false;
}
私有布尔winRate(){
double d=Math.random();
如果(d<0.5)
返回true;
其他的
返回false;
}
公共整数百分比(){
int numberWin=0;
对于(int i=0;i进行以下操作:

私有编辑文本cMoney;
私人双重货币;
私有文本目标;
私人双重目标;
私人文本投注;
私人双保险;
私有布尔findRate;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cMoney=(EditText)findViewById(R.id.money);
currentMoney=Double.parseDouble(cMoney.getText().toString());
target=(EditText)findViewById(R.id.target);
target=Double.parseDouble(target.getText().toString());
bet=(EditText)findViewById(R.id.bet);
minBet=Double.parseDouble(bet.getText().toString());
findRate=计算利率(当前货币、目标、最小赌注);
}
您不能将这样的代码放在任何方法/构造函数之外,除非它是静态/初始值设定项块,并且这里绝对没有理由使用它们

另外,我发现
calRate
中的参数名与变量
currentMoney
相同,请尽量避免这种情况,这可能会让其他人阅读您的代码时感到困惑,如果您做得太过分,甚至会让编译器感到困惑。

请注意:

    EditText cMoney = (EditText) findViewById(R.id.money);
    double currentMoney = Double.parseDouble(cMoney.getText().toString());

    EditText target = (EditText) findViewById(R.id.target);
    double theTarget = Double.parseDouble(target.getText().toString());

    EditText bet = (EditText) findViewById(R.id.bet);
    double minBet = Double.parseDouble(bet.getText().toString());

    boolean findRate = calRate(currentMoney, theTarget, minBet);

方法onCreate()的括号内然后将Target、minBet、findRate和currentMoney等变量导出到字段中,以便在该类的其他部分可以看到它们。

您好,非常感谢您的评论,根据您的建议,我已经在onCreate下添加了这些变量,但是,现在弹出新的错误,表示在winPercentage中,它无法解析“currentMoney”等等……不,你没有像我说的那样做,你的变量需要在
onCreate
方法上面声明,你在
onCreate
方法中这样做,仔细看我的帖子。你的变量需要是实例变量,现在它们是
onCreate
方法中的局部变量,所以它们在任何地方都不可见lse:)嗨,现在我已经把它放在了onCreate上面,它又回到了以前的问题,即每当我通过emulator启动应用程序时,它都会显示“不幸的是,应用程序已经停止了”,代码有什么问题吗?很抱歉,我是android新手,有时可能不懂你的意思…请仔细阅读我的帖子。在
onCreate
方法中,您可以执行
EditText-cMoney=…
等操作,然后查看我的帖子。
cMoney
已经声明,现在您需要为它赋值,以及您正在做的事情再次声明。嗨,我又有点迷路了…你介意给我看一下确切的代码吗,这样我就可以和我的代码进行比较,找出我到底哪里出错了…?嗨,非常感谢你的评论,根据你的建议,我已经在下面添加了这些
    EditText cMoney = (EditText) findViewById(R.id.money);
    double currentMoney = Double.parseDouble(cMoney.getText().toString());

    EditText target = (EditText) findViewById(R.id.target);
    double theTarget = Double.parseDouble(target.getText().toString());

    EditText bet = (EditText) findViewById(R.id.bet);
    double minBet = Double.parseDouble(bet.getText().toString());

    boolean findRate = calRate(currentMoney, theTarget, minBet);