java - While loop causes the app to freeze -
sorry if i'm not submitting question correctly. it's first time here.
so i'm new coding , app development. i've been learning java past few weeks , trying make android app. it's simple number guessing game.
so have code if few "if" statements, it'll work. of course 1 guess since it's not loop.
when put in while loop app freeze when while loop tries loop.
here code:
package com.example.jeremy.numberguessinggame; import org.w3c.dom.text; import java.util.random; public class mainactivity extends appcompatactivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); final textview title = (textview) findviewbyid(r.id.textview1); final edittext userguess = (edittext) findviewbyid(r.id.edittext1); button btnsubmit = (button) findviewbyid(r.id.button1); final textview guessfeedback = (textview) findviewbyid(r.id.textview2); final textview textnumberofguesses = (textview) findviewbyid(r.id.textview3); final textview textguessnumber = (textview) findviewbyid(r.id.textview4); final textview textcorrectnumber = (textview) findviewbyid(r.id.temptext); random rand = new random(); final int correctnumber = rand.nextint(5)+1; //this line convert int correctnumber string textcorrectnumber.settext(string.valueof(correctnumber)); btnsubmit.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { int numberoftries = 0; //to compare (edittext)userguess (integer)rand, need string userguess, , //convert string integer string convertedstring = userguess.gettext().tostring(); int convertednumber = integer.parseint(convertedstring); while (true) { if (convertednumber == correctnumber) { guessfeedback.settext("you guessed correct number"); numberoftries++; textguessnumber.settext(string.valueof(numberoftries)); title.settext("you won!!!!!"); break; } else if (convertednumber > 5 || convertednumber < 1) { guessfeedback.settext("the number between 1 , 5."); numberoftries++; textguessnumber.settext(string.valueof(numberoftries)); } else if (convertedstring.equals(null)) { guessfeedback.settext("nope."); } else if (convertednumber > correctnumber) { guessfeedback.settext("your guess high."); numberoftries++; textguessnumber.settext(string.valueof(numberoftries)); } else if (convertednumber < correctnumber) { guessfeedback.settext("your guess low."); numberoftries++; textguessnumber.settext(string.valueof(numberoftries)); } } } }); }
i've tried googling decent amount i'm not finding issue. here link code: https://pastebin.com/b11pgvzd.
anyone have idea of be?
you don't need while
loop here. if understand correctly, current while
loop inside listener on sort of submit button user input. well, need check once each click of button, because until user has submitted input, hasn't happened yet business logic point of view.
int numberoftries = 0; btnsubmit.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if (convertednumber == correctnumber) { guessfeedback.settext("you guessed correct number"); numberoftries++; textguessnumber.settext(string.valueof(numberoftries)); title.settext("you won!!!!!"); } else if (convertednumber > 5 || convertednumber < 1) { guessfeedback.settext("the number between 1 , 5."); numberoftries++; textguessnumber.settext(string.valueof(numberoftries)); } else if (convertedstring.equals(null)) { guessfeedback.settext("nope."); } else if (convertednumber > correctnumber) { guessfeedback.settext("your guess high."); numberoftries++; textguessnumber.settext(string.valueof(numberoftries)); } else if (convertednumber < correctnumber) { guessfeedback.settext("your guess low."); numberoftries++; textguessnumber.settext(string.valueof(numberoftries)); } } });
Comments
Post a Comment