Que condicion o bucle usar

como hago para que si mi condición no cumple me vuelva a preguntar hasta que haya ingresado correctamente

ejemplo: El usuario tenia que ingresar dígitos que estén entre el 1-12, no me da esto

void pedir_num(int num){  int num1; printf("escriba un numero del 1-12"); scanf("%i", num1); int rango; for ( rango=0; rango<=12; rango++)  {      do {                 printf("Introdusca correctamente"); } while (num1 != rango); 

}

int main(){  int num;  pedir_num(&num);  return 0; 

}

Repetir condiciones if dentro de un bucle while , for o switch

Tengo un problema quisiera que me ayuden, el caso es que quiero que al ingresar dos a mas personas en el programa me repita todas las condiciones pero con un bucle, por ejemplo : al ingresar el numero 2 que me pregunte dos veces “cual es tu edad? :” y así sucesivamente.

Código:

  import java.util.Scanner;     public class MainClass {       public static void main(String[]        args){      Scanner sc = new Scanner(System.in);     int dat1,dat2;     System.out.print("Ingrese el numero de personas a preguntar : ");     dat1 = sc.nextInt();      if(dat1==1){       System.out.print("Cual es tu edad? :");     dat2 = sc.nextInt();        if(1<=dat2 && dat2<=9){      System.out.println("niño");   }        if(10<=dat2 && dat2<=14){      System.out.println("puber");   }       if(15<=dat2 && dat2<=17){      System.out.println("adolescente");   }       if(18<=dat2){      System.out.println("adulto");   } } 

Agradecere su gentil apoyo.

¿Alguien me puede explicar que hace este bucle?

Necesito sabes qué hace este código, lo encontré en un ejemplo de programación php y no entiendo para que sirve y que finalidad tiene y cómo lo puedo usar.

function view($  vista, $  datos) {     foreach ($  datos as $  id_assoc => $  value) {         $  {$  id_assoc} = $  value;     }     require_once 'core/HelpVistas.php';     $  helper = new HelpVistas();     require_once 'view/' . $  vista . 'View.php'; } 

linea de codigo bucle while

Estoy iniciandome en python y quisera saber los pasos de esta linea de codigo, alguien me puede orientar el paso a paso para llegar a ese resultado

    print('While controlado por conteo')         print('===============================')         print('Sumador numero hasta 30')         sum=1         num=1         while (sum<=30):           sum=num+sum           num=num+1           print('La suma es ' +str(sum))     While controlado por conteo =============================== Sumador numero hasta 30 La suma es 2 La suma es 4 La suma es 7 La suma es 11 La suma es 16 La suma es 22 La suma es 29 La suma es 37 

Como repetir un análisis Kruskal-Wallis en R con un bucle ‘for’ y obtener una solución única para cada variable analizada

soy bastante nuevo en la programación y en R, así que ando muy perdido con este problema:

Necesito hacer un análisis de Kruskal-Wallis para un número elevado de variables numéricas respecto de diferentes variables categóricas y obtener un valor de significación para cada una de las variables numéricas. Mis datos son más o menos así:

‘Sample,Nunatak,Slope,Altitude,Depth,Fluoride,Acetate,Formiate,Chloride,Nitrate (…) m4,1,1,1,1,0.044,0.884,0.522,0.198,0.021 m6,1,1,1,2,0.059,0.852,0.733,0.664,0.038 m7,1,1,1,3,0.082,0.339,1.496,0.592,0.034 m8,1,1,2,1,0.112,0.812,2.709,0.357,0.014 m10,1,1,2,2,0.088,0.768,2.535,0.379,0 m11,1,1,3,1,0.101,0.336,4.504,0.229,0 m13,1,1,3,2,0.092,0.681,1.862,0.671,0.018 m14,1,2,2,1,0.12,1.055,3.018,0.771,0 m16,1,2,2,2,0.102,1.019,1.679,1.435,0 m17,1,2,2,3,0.26,0.631,0.505,0.574,0.008’ (…)

Siendo Nunatak, Slope, Altitude y Depth las variables categóricas y el resto (Fluoride…) las numéricas.

Para no tener que repetir:

kruskal.test("Factor a analizar 1"~"Variable de categorización 1",  data=env_fact) 

Tantas veces como variables tengo, un compañero me ha ayudado a crear un bucle ‘for’ como el que sigue:

my.variables <- colnames(env_fact) for(i in 1:length(my.variables)) {     if(my.variables[i] == 'Categorical_var') {         next     } else {         kruskal.test(env_fact[,i], env_fact$  Categorical_var)     } } 

Sin embargo, no conseguimos escribir un código que nos permita sacar los valores del test para cada una de las variables numéricas (my.variables) que analizamos, sino que solo hemos conseguido sacar un valor de significación para el análisis como si se realizara con todas las variables numéricas a la vez.

¿Alguna idea de cómo modificar el pequeño código para poder tener en pantalla o en un output los valores del Kruskal-Wallis test para cada una de las variables numéricas que necesito analizar?

Muchas gracias de antemano

No acabo de comprender del todo el siguiente bucle foreach en php

No acabo de entender el bucle del foreach me lía todo en sí. Si alguien me lo podiese explicar paso por paso de lo que hace me iría bien para el futuro. Saludos.

<?php // Suma los valores de dos arreglos. function __sum($  a, $  b) {    $  c = [];     foreach($  a as $  i => $  a_x) {          $  b_x = $  b[$  i];         $  c[] = $  a_x + $  b_x;   }    return $  c;   }  $  a = [[2, 4, 8], [1, 3, 5]]; $  b = [[1, -1, 1], [0,  1, -2]]; ?>

Bucle infinito con dos eventos – Tkinter – Python

Tengo dos widgets que estan enlazados al mismo evento:

  • Un frame que hace que se ajuste la imagen a la pantalla
  • Un Label que quiero que se ajuste la fuente a la pantalla

El problema es que al añadir el segundo widget se hace un bucle infinito y es como que el evento generado empieza a aumentar el valor ‘height’ de la pantalla.

El frame es:

class FrameImgResizable(tk.Frame): def __init__(self, master, image=None, *args, **kwargs):     tk.Frame.__init__(self, master, *args, **kwargs)      if not image:         self.image = Image.open(image_labelFrameUser_Big)     else:         self.image = Image.open(image)     self.img_copy = self.image.copy()      self.background_image = ImageTk.PhotoImage(self.image)      self.background = tk.Label(self, image=self.background_image)     self.background.pack(fill=tk.BOTH, expand=tk.YES)     self.background.bind('<Configure>', self._resize_image)  def _resize_image(self, event):     new_width = event.width     new_height = event.height      self.image = self.img_copy.resize((new_width, new_height))      self.background_image = ImageTk.PhotoImage(self.image)     self.background.configure(image=self.background_image) 

y el widget label es:

    self.frame_btn = tk.Frame(self.frame_perfil, bg=bg_labels_white, cursor="hand2")     self.frame_btn.grid_columnconfigure(0, weight=1)     self.frame_btn.grid_columnconfigure(3, weight=1)     self.frame_btn.place(relwidth=0.98, relheight=0.07, relx=0.01, rely=0.48)      self.btn_tweets = tk.Label(self.frame_btn, text="Tweets", cursor="hand2",                                font=self.font_title, justify='center')     self.btn_tweets.grid(row=0, column=1)     self.btn_tweets.bind('<Configure>', self.resize_font)  def resize_font(self, event):     self.font_title.configure(size=(int(event.height * 0.8))) 

Mi pregunta es: ¿Por qué se genera un bucle infinito haciendo que le valor de ‘height’ aumente? y, ¿cómo hago para genera ese mismo evento para ambas cosas sin que pete de esta manera?

Gracias de antemano

No entiendo el siguiente bucle for, javascript

Hola buenas recién acabe un ejercicio para verificar si un numero es primo o no pero no acabo de entender del todo la solución ya que este bucle no comprendo bien su significado. Adjunto todo el código y lo que no comprendo es la parte que esta en el else. Saludos.

<!DOCTYPE html> <html>     <head>         <title></title>         <meta charset="UTF-8">         <style type="text/css">         </style>     </head>     <body>         <script>             var numero = parseInt(prompt('Introduzca el numero que desea analizar si es primo o no: '));             function test_Primo(numero) {                 if (numero==1){                     return  false;                 } else if(numero == 2){                     return  true;                 }                 else{                     for (var x=2; x<numero; x++){                         if(numero%x == 0) {                             return  false;                         }                     }                     return  true;                   }             }             if(test_Primo(numero)==true) {                 alert('El numero ' + numero + ' es primo');             }               if(test_Primo(numero)==false) {                 alert('El numero ' + numero + ' no es primo');             }          </script>     </body> </html>

controlar bucle while mediante booleanos

(Creo que el título no es muy descriptivo pero no sé como ponerlo)

Estoy analizando un vídeo frame a frame. La cosa es que el primer paso es coger ese frame y ver si es “trabajable”. Esto se hace con la siguiente línea (empleando la librería opencv),

ret, frame = cap.read() 

en frame guardamos la imagen actual con la que vamos a trabajar y en ret un booleano si esa imagen es procesable o no.

Por lo tanto yo lo que tengo es bucle un while que lo que hace es ir analizando frame a frame hasta el final de mi vídeo.

while (cap.isOpened()):     ret, frame = cap.read()     cv2.imshow('frame', frame) #mostrar frame actual 

¿Que sucede si ret es Falso? Pues que se genera un error. ¿Cómo podría solucionar esto? Con un condicional que si es Falso rompa el bucle. PERO en este caso dejo de analizar el vídeo, es decir, si quedaban 20 frames por analizar, ya no los analizo por culpa de este defectuoso.

Entonces pensé, pues solo trabajo en los que el valor de ret = True, pero en ese caso, cuando viene un ret = False se genera un bucle infinito en ese frame defectuoso.

while (cap.isOpened()):      ret, frame, gray_frame = frame_func(cap)     if ret == True:         cv2.imshow('frame', frame) 

Mi duda es, ¿cómo hago para que si un ret viene falso, simplemente paso al siguiente y sigo analizando hasta el final?

Gracias

Actualizar Label dentro de un bucle

No consigo que se actualice en pantalla un simple bucle for. El programa arranca y cuando llega al final del bucle muestra el último valor. Se que tiene que ver con concurrencia y los hilos pero no he sabido solucionarlo.

public class Controller implements Initializable { @FXML private Button id_boton1; @FXML private Label id_texto1;   @Override public void initialize(URL location, ResourceBundle resources) {     id_boton1.setOnAction(new EventHandler<ActionEvent>() {         @Override         public void handle(ActionEvent event) {             hacerTarea();         }     }); }  private void hacerTarea() {       for (int i = 0; i < 100; i++) {         try {             sleep(10);             id_texto1.setText("N: " + i);             System.out.println(i);         } catch (InterruptedException e) {             e.printStackTrace();         }     } } }