Do..While - prośba o zapętlenie kodu

0

Witam serdecznie,

jestem początkującym programistą (chociaż nie wiem czy to i tak nie jest za duże określenie :P) i mam problem z kodem, a raczej z jego zapętleniem. Generalnie kod tworzy 6 liczb, których suma musi się równać 7 i tu pojawia się mój problem: Nie do końca wiem jak stworzyć odpowiednią pętlę. Wg mnie pętla typu Do... While powinna się idealnie do tego nadawać jednak jakoś mi nie wychodzi :P

class Solverpt2
{
	public static void main (String [] args){
		

		int[] nums = new int[11];
		
		for (int i =1; i<=10; i++){
			nums[i] = i;
		}
		
		for (int i = 1; i<10; i++){
			int r = (int) (Math.random()*10);
			int temp = nums[i];
			nums[i] = nums[r];
			nums[r]=temp;
		
		}
		
		
		for (int i = 0; i<10; i++){
		//	System.out.println(Integer.toString(nums[i])+ " ");
		
		
		}
		
		int NumB = nums[0];
		int NumF = nums[1];
		int NumH = nums[2];
		int NumI = nums[3];
		int NumO = nums[4];
		int NumR = nums[5];
		int NumW = nums[6];
		//int Num7 = nums[7];
		//int Num8 = nums[8];
		//int Num9 = nums[9];

		
		int SumK1 = NumW*100000000+NumO*1000000+NumF*100000+NumO*10000+NumW*1000+NumB*100+NumH*10+NumH;
		
		int Sum1 = NumB*1000000+NumH*100000+NumF*10000+NumF*1000+NumB*100+NumO*10+NumR;
		int Sum2 = NumI*1000000+NumR*100000+NumF*10000+NumB*1000+NumB*100+NumW*10+NumO;
		int Sum3 = NumR*1000000+NumR*100000+NumR*10000+NumH*1000+NumH*100+NumI*10+NumH;
		int Sum4 = NumR*1000000+NumR*100000+NumB*10000+NumR*1000+NumH*100+NumH*10+NumO;
		int Sum5 = NumR*1000000+NumF*100000+NumI*10000+NumH*1000+NumH*100+NumH*10+NumH;
		int Sum6 = NumW*1000000+NumH*100000+NumW*10000+NumH*1000+NumB*100+NumB*10+NumF;
		
		int SumK2 = Sum1+Sum2+Sum3+Sum4+Sum5+Sum6;
		
		
	

		
		System.out.println("NumB " + NumB);
		System.out.println("NumF " + NumF);
		System.out.println("NumH " + NumH);
		System.out.println("NumI " + NumI);
		System.out.println("NumO " + NumO);
		System.out.println("NumR " + NumR);
		System.out.println("NumW " + NumW);
		}
		
		
	}

Próbowałem wstawiać funkcje Do while oraz If, ale niestety nie działa. Jeśli są prostsze rozwiązania to bardzo bym prosił o radę ;P

1

Skoro nie odróżniasz instrukcji sterującej od funkcji to zacznij od byle jakiego kursu.
Na początek radzę wybrać najkrótszy.
Opis: - "... kod tworzy 6 liczb, których suma musi się równać 7 ..." - na 100% nie odpowiada temu co robi ten program, nawet blisko nie leżało.

0

Dobrze to inaczej: Generuje 7 losowych cyfr z zakresu 0-9, które się nie powtarzają i tworzy na ich podstawie 6 liczb, których suma musi się równać 7-ej. Liczby zapisane są w literach, i tak np: AAA - 111, ABC - 123, AAA+ABC = BCD. Program ma generować tak długo cyfry, aż równanie będzie się zgadzać.

Wiem, że na to są dużo prostsze i logiczniejsze rozwiązania, chodzi mi jedynie czy istnieje możliwość zapętlenia tego co napisałem, bo ręcznie wywoływać komendę dla tak dużych liczb nie ma oczywiście sensu...

Ale dziękuję za radę.

1
Troller napisał(a):

Generuje 7 losowych cyfr ...

  • nieprawda.
Troller napisał(a):

... z zakresu 0-9 ...

  • nieprawda.
Troller napisał(a):

... , które się nie powtarzają ...

  • owszem ale nierównomiernie losujesz.
Troller napisał(a):

... i tworzy na ich podstawie 6 liczb ...

  • nie musisz je fizycznie tworzyć wystarczy że wypiszesz jedną po drugiej.
Troller napisał(a):

... Liczby zapisane są w literach, i tak np: AAA - 111, ABC - 123, AAA+ABC = BCD. ...

  • nieprawda.
Troller napisał(a):

Wiem, że na to są dużo prostsze i logiczniejsze rozwiązania, chodzi mi jedynie czy istnieje możliwość zapętlenia tego co napisałem ...

  • tak istnieje ale z zadania co opisałeś jak na razie nie zrobiłeś nic. Więc zacznij od przeczytania kursu, dalej pójdzie z górki.
0

Dzięki za wiarę, ale udało mi się samodzielnie rozwiązać ten problem i działa...

0
Troller napisał(a):

Dzięki za wiarę ...
To nie jest kwestia wiary, przedstawiłem gołe fakty.

Troller napisał(a):

.... udało mi się samodzielnie rozwiązać ten problem i działa ...
W dobrych tradycjach tego forum należałoby wkleić działające rozwiązanie ponieważ:

  • dla potomnych - ktoś inny może mieć podobne problemy
  • dla sprawdzenia - wszystkie błędy i niedociągnięcia zostaną wytknięte i poprawione.

1 użytkowników online, w tym zalogowanych: 0, gości: 1