Vektorer
"Undersök om elementen är sorterade i växande ordning"
Jag är inte hemma i programmering men jag vill väldigt gärna lära mig. Så här är mitt försök och problem:
Jag kanske har kommit på något - och mitt mål är inte att bli perfekt utan jag vill veta om jag ALLS är i närheten av att göra något som fungerar.
En fråga jag har i många uppgifter är vart man hamnar med breaksatsen och om det finns något annat liknande som får mig dit jag vill.
Mitt försök till uppgoiften ovan är
public static boolean isSorted(int[] v){
int i = 1;
while (i < v.length) {
if ( v[i-1) < v[i]) {
i++
} else {
return false;
break; //VART HAMNAR JAG EFTER BREAK HÄR?
}
}
return true; //tänker att om inte man kommit till else och false har returnerats så hamnar man här när i kommit upp till < v.length och då returneras true för då har alla element varit i ordning. MEN jag är osäker på om man hamnar här efter break ändå?
}
}
gulfi52 skrev :"Undersök om elementen är sorterade i växande ordning"
Jag är inte hemma i programmering men jag vill väldigt gärna lära mig. Så här är mitt försök och problem:
Jag kanske har kommit på något - och mitt mål är inte att bli perfekt utan jag vill veta om jag ALLS är i närheten av att göra något som fungerar.
En fråga jag har i många uppgifter är vart man hamnar med breaksatsen och om det finns något annat liknande som får mig dit jag vill.
Mitt försök till uppgoiften ovan är
public static boolean isSorted(int[] v){
int i = 1;
while (i < v.length) {
if ( v[i-1) < v[i]) {
i++
} else {
return false;
break; //VART HAMNAR JAG EFTER BREAK HÄR?
}
}
return true; //tänker att om inte man kommit till else och false har returnerats så hamnar man här när i kommit upp till < v.length och då returneras true för då har alla element varit i ordning. MEN jag är osäker på om man hamnar här efter break ändå?
}
}
Break-satsen kommer aldrig att exekveras eftersom du innan dess har gjort return false, vilket avbryter exekveringen omedelbart.
Yngve skrev :gulfi52 skrev :"Undersök om elementen är sorterade i växande ordning"
Jag är inte hemma i programmering men jag vill väldigt gärna lära mig. Så här är mitt försök och problem:
Jag kanske har kommit på något - och mitt mål är inte att bli perfekt utan jag vill veta om jag ALLS är i närheten av att göra något som fungerar.
En fråga jag har i många uppgifter är vart man hamnar med breaksatsen och om det finns något annat liknande som får mig dit jag vill.
Mitt försök till uppgoiften ovan är
public static boolean isSorted(int[] v){
int i = 1;
while (i < v.length) {
if ( v[i-1) < v[i]) {
i++
} else {
return false;
break; //VART HAMNAR JAG EFTER BREAK HÄR?
}
}
return true; //tänker att om inte man kommit till else och false har returnerats så hamnar man här när i kommit upp till < v.length och då returneras true för då har alla element varit i ordning. MEN jag är osäker på om man hamnar här efter break ändå?
}
}
Break-satsen kommer aldrig att exekveras eftersom du innan dess har gjort return false, vilket avbryter exekveringen omedelbart.
vart hamnar jag efter return false har körts? hamnar jag i return true?
gulfi52 skrev :Yngve skrev :gulfi52 skrev :"Undersök om elementen är sorterade i växande ordning"
Jag är inte hemma i programmering men jag vill väldigt gärna lära mig. Så här är mitt försök och problem:
Jag kanske har kommit på något - och mitt mål är inte att bli perfekt utan jag vill veta om jag ALLS är i närheten av att göra något som fungerar.
En fråga jag har i många uppgifter är vart man hamnar med breaksatsen och om det finns något annat liknande som får mig dit jag vill.
Mitt försök till uppgoiften ovan är
public static boolean isSorted(int[] v){
int i = 1;
while (i < v.length) {
if ( v[i-1) < v[i]) {
i++
} else {
return false;
break; //VART HAMNAR JAG EFTER BREAK HÄR?
}
}
return true; //tänker att om inte man kommit till else och false har returnerats så hamnar man här när i kommit upp till < v.length och då returneras true för då har alla element varit i ordning. MEN jag är osäker på om man hamnar här efter break ändå?
}
}
Break-satsen kommer aldrig att exekveras eftersom du innan dess har gjort return false, vilket avbryter exekveringen omedelbart.
vart hamnar jag efter return false har körts? hamnar jag i return true?
Du hamnar där anropet till isSorted(vec) görs.
Yngve skrev :gulfi52 skrev :Yngve skrev :gulfi52 skrev :"Undersök om elementen är sorterade i växande ordning"
Jag är inte hemma i programmering men jag vill väldigt gärna lära mig. Så här är mitt försök och problem:
Jag kanske har kommit på något - och mitt mål är inte att bli perfekt utan jag vill veta om jag ALLS är i närheten av att göra något som fungerar.
En fråga jag har i många uppgifter är vart man hamnar med breaksatsen och om det finns något annat liknande som får mig dit jag vill.
Mitt försök till uppgoiften ovan är
public static boolean isSorted(int[] v){
int i = 1;
while (i < v.length) {
if ( v[i-1) < v[i]) {
i++
} else {
return false;
break; //VART HAMNAR JAG EFTER BREAK HÄR?
}
}
return true; //tänker att om inte man kommit till else och false har returnerats så hamnar man här när i kommit upp till < v.length och då returneras true för då har alla element varit i ordning. MEN jag är osäker på om man hamnar här efter break ändå?
}
}
Break-satsen kommer aldrig att exekveras eftersom du innan dess har gjort return false, vilket avbryter exekveringen omedelbart.
vart hamnar jag efter return false har körts? hamnar jag i return true?
Du hamnar där anropet till isSorted(vec) görs.
va?? men hur hamnar jag efter anropet så programmet fortsätter?
nu är jag verkligen förvirrad
va??
Ja förlåt jag menar att du hamnar efter anropet till isSorted()
Yngve skrev :Ja förlåt jag menar att du hamnar efter anropet till isSorted()
Okej tack!
Hur gör man om man bara vill komma ur närmaste loopen -
1. som här från if-else satsen till for satsen?
eller 2. från if-else satsen OCH for satsen men ut i isSorted() "området"?
gulfi52 skrev :Yngve skrev :Ja förlåt jag menar att du hamnar efter anropet till isSorted()
Okej tack!
Hur gör man om man bara vill komma ur närmaste loopen -
1. som här från if-else satsen till for satsen?
eller 2. från if-else satsen OCH for satsen men ut i isSorted() "området"?
Ett break avbryter loopen.
Ett alternativ med relevant användning av break:
public static void main(String[] args)
{
int[] v = { 1, 2, 3, 4};
if (isSorted(v))
{
// ... sorterad korrekt
}
} // end main()
public static boolean isSorted(int[] v)
{
int i, len;
boolean result = true; // Antag att allt är sorterat i rätt ordning
len = v.length;
for (i = 1; i < len; i++)
{
if (v[i - 1] > v[i])
{
result = false; // Fel ordning
break; // Avbryt (hoppa ur) for-loopen
}
} // End for
return result;
}